Fix character offsets for EOFs after newlines

EOFs after a token containing newlines currently get the wrong positions.

For example, for a grammar containing the following lexer rules:
```
Digit : [ 0-9 ] ;
WS  :  [ \t\r\n ]+ ;
```
and input `1234\n<EOF>`, the EOF token has line 2, but it's `charPositionInLine` is 5, rather than 0. That is, it claims to be on the new line, but at a character offset corresponding to the end of the previous line.

The fix is a straightforward check in `Lexer.emitEOF` to only update the char position in the line if the current line is the same as that of the previous token.
Do any additional unit tests fail if this block is omitted altogether?