Improve Lexer recovery.
Major rewrite of error recovery in LL(1) parser.