Reorganize inheritance hierarchy for lexer tokens
Reorganize inheritance hierarchy for lexer tokens

Previously, there was no way to tell the difference between an operator
and a reserved word.  Both were simply literal-tokens.  Now, there is an
intermediate class that can be recognized.

bradleyjensen/shcl,bradleyjensen/shcl,bradleyjensen/shcl