Adopt improved parser from OMOP branch

- fixes the file ranges given to Truffle for correct display
- introduces explicit lexer state for easier and correct peek handling
- rely on hack for file position, uses still buffered reader, and reflection to get to field, which relies on having enough buffer space for the whole file

Signed-off-by: Stefan Marr <git@stefan-marr.de>