Move lexical binding renaming to JS:VARIABLE printer (part one)
This moves lexical binding renaming into the printer for
`js:variable' (where it belongs -- using symbol-macros for this makes
the compiler a lot messier than it need be). Right now a new block is
unnecessarily introduced for every `let' expression.
* Rewrite `let' special form
* Enclose variable name in `js:variable' when expanding `var' special
form
* Maintain lexical binding stack in printer for `js:let'
* Perform renaming for all `js:variable' forms at print time