Save a fair amount of space while compiling by not storing data in nodes unnecessarily.
Adding test.
Remove methods from tokens.
Remove unused methods.
Simplifying bitpacking large tokens.
Simplify code before introducing smll tokens.
Simplify token implementations.
Update LKG.
Add specialized small tokens.
Simplify scanner code.

nearly every branch has to move the text index forward.  So extract that out and always do it.
Access .kind() less often.
Simplify parser.
Simplify code in the parser.
Produce a more compact token for fixed width tokens that have no trivia.

These are a full 3rd of all tokens generated in a normal program.  Having a
specialized token type helps us save 2-3% memory in our trees.
Update LKG.
Compute modifier count up front as lots of productions need it.
Simplify parser code.
Simplify parser code.
Call eatToken less.
Simplify scanner code.