Cleanup of scanner.

Removed redundancy of keyword definitions and removed some unused token
predicates.
I am kind of confused. What is `#define TOKEN(name, string, precedence)` actually doing? Does it simply define the preprocessor macro? Why?