Make Java-Lang compatible with Java 6

- Configure the compiler to emit Java 6 bytecode (unfortunately this means that Java 7 features like the diamond operator can not be used)
- Add alternative code-paths for cases where the field names have changed betwee Java 6/7

This has been tested and all the unittest pass with Java 6, 7 and 8.