Tojava3

All Scala source code is converted to java, and tests are updated to use the Java binding.
Currently scala code is literally translated to Java. It can be further optimized a lot more. Will do that in the next pass. 

Things remaining to do:
 - convert scala tests to java
 - remove unnecessary callbacks/indirections
 - optimize memory, avoid creating strings and substrings
 - check test coverage
 - benchmark common usage