b* binder for list decomposition, using car/cdr.
Usage:
(b* (((list a b c) lst)) form)
is equivalent to
(b* ((a (car lst)) (tmp1 (cdr lst)) (b (car tmp1)) (tmp2 (cdr tmp1)) (c (car tmp2))) form)
Each of the arguments to the list binder may be a recursive binder, and list may be nested inside other bindings.