Consider more simple methods for inlining.
Fold If constructs.
Discard side-effects of statements.
Optimize pattern matches.
Merge pull request #835 from sjrd/opt-pattern-matches

Several new optimizations that give better translations for pattern matches
Inline methods of IndexedSeqOptimized in an ad hoc way.

Just because.
Circular inlining detection and prevention.
Add New to cases of SimpleMethodBody.
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.
Inline more simple methods.
Discard VarDefs that are not actually used.
Discard side-effect-free LoadModules if not used.