fix macro expand and destructuring (backport)

* Reintroduce pre-compile macroexpand step that fixes macros not
expanding in macro calls.
* Fix silly destructuring assignment bug
It’s a patch. A full rewrite is underway.