Fix missing return types.

Fixes #1352
Fix so 'jake diff' works with PowerShell.
Improve the flexibility of speculative parsing.

We now no longer fail a speculative parse just because an error was encountered at any point while
speculating.  instead, we allow the speculative function that is being called to determine if the
parse was successful or not.  Only if it decides it was not successful is parsing rewound.

This improves our error recovery in several cases (esp. around arrow functions).  it will also
help in a followup refactoring to prevent lookahead/speculative parsing from causing lambda
allocations.
Remove function expression allocation when speculatively parsing or looking ahead.

Also, remove unnecessary grammar check now that the previous hack to insert a
missing type argument node has been removed.
Fix comment.
Add invariant assert in the parser.
Inline method.
Code Review
Merge pull request #1366 from jbondc/master

Fix so 'jake diff' works with PowerShell.
Merge pull request #1358 from Arnavion/fix-missing-return-types

Fix missing return types.
CR feedback.
Merge pull request #1368 from Microsoft/parseErrors

Remove all function expression allocations when speculatively parsing or looking ahead.
Merge branch 'master' into parserErrors2

Conflicts:
	src/compiler/parser.ts