Lexer - Minor optimization and refactoring.

Performance
==============================

New code is 1-6% faster depending on input.

Dart VM - Old:
ident: => 1,867,842 ops/sec (1 us) stdev(0.14704)
ident-path: => 2,988,173 ops/sec (0 us) stdev(0.30025)
num: => 1,846,662 ops/sec (1 us) stdev(0.14144)
num-double: => 870,388 ops/sec (1 us) stdev(0.06447)
string: => 1,932,097 ops/sec (1 us) stdev(0.1746)
string-escapes: => 636,725 ops/sec (2 us) stdev(0.04186)

Dart VM - New:
ident: => 1,937,559 ops/sec (1 us) stdev(0.09623)
ident-path: => 3,153,928 ops/sec (0 us) stdev(0.2155)
num: => 1,898,129 ops/sec (1 us) stdev(0.07028)
num-double: => 897,498 ops/sec (1 us) stdev(0.03175)
string: => 2,049,042 ops/sec (0 us) stdev(0.07477)
string-escapes: => 656,040 ops/sec (2 us) stdev(0.02173)