End-to-end translation with proper lexer, parser, and AST transformations

* Overall cleanup and refactoring
* New parser implementation based on the lexer
* Intermediary "Common" language definition
* Transformations from batch to CommonLang and then to a CSharp AST
* Basic source code printer for CSharp ASTs
* Some tests and a new main function to match new translation flow