Improve parsing methods

This mainly is a setup of the plumbing that will be used to do actual
parsing.
Add more documentation
Add more work on parser

Prepare the infrastructure for 'aliases' defined with `\let` or
`\futurelet`. This implies that tokens must be pushed back in the
input stream (and also needed for expansion).