Introducing a Java version of the library

Also includes performance improvements when dealing with big integers