Syntax refinement, many more lexer tests

- Syntax has been refined around varargs, versions, operators
- Many more lexer tests were added to cover full syntax
- Lexer/Token classes were changed to ensure tests pass
Merge branch 'feature/lexer-tests'