(perf) Add Lexer2 - a faster Lexer replacement

The Lexer2 (not yet used by the parser) performs >3x faster on
lexing of 10 lines of mixed code including simple expression
interpolation than the original lexer (which does not keep track
of detailed positions).