Remove unused functions in parser.
Updated harness.
Ensure the parser lets go of all state after parsing.
Bring back classes for syntax nodes, and merge data in our token class.

This adds up to a substantial savings in memory, and addresses the large
regression that happened when making the original changes last week.

Notes:
1) classes have returned.  However, they are much lighter (in terms of metadata)
   than before.  The classes have only a single method in them, instead of the
   dozens of methods from before.  The method encodes the information about the
   type of the node so that we don't need to store state in the object for that
   alone.

2) We merge the fullWidth and kind information in a token into a single field
   to save on memory.  Ideally, we may return to heavily specialized token classes
   in the future for even greater savings.
Update LKG.