fix CRLF handling in lexer .input(): this was broken as it would not recognize the CR from the CRLF and thus count the line twice.
- fix lexer by cleaning up the match record as soon as possible: this is important when user code using a custom post_lex and/or directly invoking .lex() should always receive an empty match record for each EOF token produced (this was not the case previously if the last token before EOF was an ERROR token)

- we can try to recover from a lexer error that parseError() did not 'recover' for us, by moving forward one character at a time: this allows users to specify a custom lexer parseError handler which can attempt to 'recover'/skip/ignore the ERROR at hand on its own, or this default will kick in so that the parser/lexer will not end up in an infinite run-around by being stuck on an 'erroneous character' in the input.