Frontend changes:

- Added parser
- Moved lexer + parser to own package
- Created a custom error class for parser and lexer