Add parsing logic for class definitions

This is the end-result of a rather large PR, and includes the following
significant changes:
* Add EOF as token type
* Make lexToken: Token, add `panic mode` to lexer
* Add tests for lexer recovery