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.
I'm actually not sure it's *ever* correct to enter this block.