Improve namespace resolution, including js/varName namespace
Simplify: strip unnecessary stuff out of fn emission
Major refactoring and cleanup of fn analysis and emission

We've temporarily dropped support for "named anonymous function" syntax,
but the function analysis and emission code is now much cleaner and more
consistent with the rest of the analysis and emission code.
Omit var keyword from emitted JS