Add :meta key on AST nodes pointing to metadata on :form
Rewrite analyze fn using cond for clarity
Add :env key on AST nodes

The :env key contains information that should be propagated downwards
through the AST, from each node to its children – stuff like quotation
(the :quoted? key) and local bindings of the type established by let,
loop and fn (the :locals key).
Tweak analyze-quote to use :env :quoted? key
Desugar keyword invocation and JS interop during expansion phase