EOF handling

* Add unit tests related to antlr/antlr4#110.
* Cannot call `consume` after EOF is reached in `ParserATNSimulator`. The pattern used matches the behavior of `LexerATNSimulator`.
* The above change causes a non-termination of the prediction algorithm for some grammar/input combinations due to other problems mentioned in antlr/antlr4#110. Add a 5 second timeout to `testSLLSeesEOFInLLGrammar` rather than `@Ignore` this failing test.