Add parsing logic for class declarations, refactor

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