Improved, extended, and refactored iteration special forms.
* Added support for DO*.
* DO now does parallel assignment.
* DO/DO* now correctly support init-forms such as:
(do (a (b) (c 1) (d 1 (1+ d))) ...)
* DO/DO*/DOTIMES/DOLIST/DOEACH now support return values via a lambda
transform.
* DOEACH now supports implicit key/value destructuring, e.g.:
(doeach ((key val) arr res) ...)
* Added labeled-for to facilitate creating labeled for loops.
* Restructured low level printer operators to better match the
underlying JS.