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.
```
  TestLexerExec.testZeroLengthToken:688 expected:<...,5:4='<EOF>',<-1>,1:[5]]
> but was:<...,5:4='<EOF>',<-1>,1:[6]]
>
```

I think this makes sense - although the location of the preceding token does not inclue the quotes, the EOF should "appear" after the trailing quote.