Lexer Optimizations

Performance
==============================

New code is 1-10% faster depending on input.

Dart VM - Old

ident: => 1,891,803 ops/sec (1 us) stdev(0.0819)
ident-path: => 2,984,756 ops/sec (0 us) stdev(0.15266)
num: => 1,764,064 ops/sec (1 us) stdev(0.25551)
num-double: => 854,575 ops/sec (1 us) stdev(0.06801)
string: => 1,930,552 ops/sec (1 us) stdev(0.17848)
string-escapes: => 594,071 ops/sec (2 us) stdev(0.10721)

Dart VM - New

ident: => 1,963,962 ops/sec (1 us) stdev(0.09518)
ident-path: => 3,175,271 ops/sec (0 us) stdev(0.18999)
num: => 1,981,652 ops/sec (1 us) stdev(0.038)
num-double: => 915,930 ops/sec (1 us) stdev(0.05047)
string: => 2,038,472 ops/sec (0 us) stdev(0.09634)
string-escapes: => 636,263 ops/sec (2 us) stdev(0.02275)