Filled out Grammar
Tree Node work
Moved log flush into Scanner itself

Now the log cache will flush the "scanloop" cache
even if not unit testing.
Cleaned up unit tests
Added unit tests for GrammarDefinitionTests