Refactored ParseTreeItem.Purge
Added trait for simple earley grammar tests
Started extracting interfaces for parts of the grammar
Removed IRuleElement
More interfcaces
Revert "More interfcaces"

This reverts commit ad56828c95452c8fd585f0f8e68813ab5dc9d5f3.
Removed duplicate code in Symbols / Terminals
Removed ToString() overrides
Grammer now validates there's a production for the StartSymbol
Removed some "hidden" equality comparisons (via Description)
Removed identical override
Refactored SLR parser a bit: inputs are now always typed as terminals
Added equality members to Token
Refactored SLR some more: used Terminals instead of Symbols where only Terminals may appear
Grammar now validates there isn't more than one start symbol
Refactored SLR some more: IsAccepted doesn't use Symbol.Equals anymore
Removed Terminal.Matches
Pushed CreateExpression down from Symbol to Terminal
Pushed IsNonOperatorTerminal down from Symbol to Terminal
Added some validation