Removed the error propagation from the lexer.

No need for the EOF error to propagate down the line, we can avoid
that by incorporating it into token type. Also incorporated the
UnexpectedChar error token.
Lexer/parser constructors made more general.

Should be clear what is being constructed.