added java functionality for geohashing
a bit of refactoring and more test cases