Ast for member access

But not for method invocation.
Basic support for member access.
TEST: A bunch of tests for member access that don't work yet.
Merge branch 'master' into method-invocation
REFACTOR: Use some LINQ when refelecting over the parser.
REFACTOR: Initialize `*_opt.Rule` with Reflection
Replace `| Empty` with `_opt` rules.

If you use write:

    Foo.Rule = Bar + (Baz | Empty);

Then Irony will create an "unnamed" `NonTerminal` for the `Baz | Empty`
part. Seeing those in GrammarExplorer made it hard to figure out what I
was looking at.

I replaced each `Baz | Empty` with `Baz_opt`, which is defined as:

    Baz_opt = Baz | Empty;

so the semantics are the same, but now the elements are named.

Also, marked them as `transient` so they don't appear in the final parse
tree. It might be better not to do this, so the AstBuilder can more easily
deal with it, but that would require updating the AstBuilder before I
could commit these changes.
Temporarily override `new_lines` to hide shift/reduce errors.
Merge branch 'master' into method-invocation
TEST: Use `TestCase` attribute in parser tests.
Parsing test cases for type literals and member access.
parser readme
Remove unused file `ErrorStatementAst.cs`.
Add a bunch of parser tests.

The point here is to establish a baseline for the parser, before changing the grammar. Some tests failed, so they're marked "Explicit". Over time, these should get fixed.

To create the tests, I read through the language spec looking at the "Examples" subsections, and turned them each in to a test case.

I got tired after 7.1.6, so that's where I stopped for now.

Also includes a handful of hand-written tests.
Merge pull request #41 from Pash-Project/method-invocation

Member access