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.

I'm going to leave this open until tomorrow, then merge it if nobody objects.