Rename method, also remove unnecessary loop when parsing conditional expressions.
Add clarifying comments to parsing binary expressions.
Provide unique nodes for void/typeof/delete expressions.
Add a lot of clarifying comments in the parser.

Simplify parser and avoid the need to pass around 'inNewExpression' information.

Make error span smaller for "new Foo[]" errors.
Rename syntax properties to match Roslyn/Fidelity naming.
Renaming syntax elements.
Updating syntax kind names.
Add greater typesafety in the expression portion of the syntax system.

Note: this change reveals that there is definitely some wonkyness going on
with nodes like FunctionLikeDeclaration.
Add a comment explaining what Brands are used for.
Make the distinction between PropertyAccessExpressions and QualifiedNames more explicit.
Change the names for property access and qualified names to match their types.
Provide brands for statements.

Introduce a ModuleElement type to provide more clear typesafety.
Provide brands for Declarations.
Use brands for Class Elements.
Support arbitrary numbers of implements and extends clauses (with arbitrary numbers of types) for classes and interfaces.

This vastly improves our error tolerance and messages for when the user writes an illegal heritage clause sequence.
Remove unnecessary tokens from the AST.
CR feedback.
Tighten types in the expression AST.
Merge branch 'master' into expressionCleanup
Simplify code.