Add Java port

Porting the compiler and the VM to Java, using JavaCC for the parser
generator (without any AST generator library, instead building the AST
classes as classic POJOs).

Also porting the VM, and adding integration tests that cover 60% of the
generated parser code (no idea how much of the code is even reachable),
82% of the compiler classes and 95% of the VM code (code coverage
determined by cobertura-maven-plugin).