Add support for passing LocalDefs through chains.

So that it becomes possible to inline a closure used two
levels of inlining (or more) from where it is declared.
Handle This() more like VarRef() in the optimizer.
Merge pull request #838 from sjrd/better-val-aliasing

Better val and this aliasing
Inline methods of IndexedSeqOptimized in an ad hoc way.

Just because.
Inline more simple methods.
Discard VarDefs that are not actually used.
Print some trees differently in IR mode than in JS mode.
Print Undefined() as 'void 0' instead of 'undefined'.

It is typically faster, and actually more correct.
Discard side-effect-free LoadModules if not used.
Merge pull request #839 from sjrd/inline-more-methods

Inline more methods
Merge pull request #840 from sjrd/discard-useless-things

Discard useless things
Merge pull request #841 from sjrd/printer

Improve the IR/JS printers