Get perf harness up and running again.
Only consider the elements of an array literal to be contextually typed if we have an actual contextual type for them.
Don't throw away syntax trees if we haven't even created the AST yet.

Doing this was causing us to double parse files in batch scenarios.
For large projects this fix is a saving of 15-20% total speed.
Fix the typeChecking for the variable and member function.
Check for presence of type before testing for infinite generic expansion during type argument inference
Update LKG.
Revert relaxation of 'super' checking.
Update addMemberToInterface FourSlash test for recent bug fix
Defer loading of comment text until actually requested.

This is especially helpful when translating from the SyntaxTree to the AST for
lib.d.ts.  We can avoid allocating all the strings for the comments and instead
just create tiny objects that can retrieve the text later if necessary (i.e. if
the LS needs them for quick info, or if they need to be emitted).
Remove unnecessary caching.
Fix ordering of checks for infinite generative type instantiation
Add another test for infinitely expanding generic types
Delay creation of many decl caches in our decls.
Avoid looking up an enclosing decl when doing privacy checks if hte member isn't actually private.
Avoid getting the enclosing decl early if we only need it to report an error.
Remove code constructs that cause V8 to not optimize methods.

Using 'arguments' prevents optimization.
Using 'try/finally' prevents optimization.
remove constructs that affect some javascript optimizers.
Use 'Object.create(null)' as the idiomatic way to get a string dictionary.
Store less data in a comment node.
Some small optimizations to help the javascript JITs.