Java target implementation

This is an early implementation of Java code generation. It supports primary language features, such as lambdas, closures, and functions-as-first class values, but it doesn't support, for instance, string concatenation. If and while arn't implemented yet.