resetPosition() used its argument directly as an index into the
internal tokens array. The only position value the public API
exposes is Token::$position, a character offset into the input
string, so passing a multi-character token's offset silently
resumed the lexer at the wrong token, or past the end of input.
resetPosition() now locates the token whose character offset is
greater than or equal to the given position and resumes from there,
matching the offset semantics already used by getInputUntilPosition().
Closes#53