Encode Geo-hashes with Precision

By looking at the Earth shape, one recognizes the size of geohash cells shrinks by moving away from the equator along an arbitrary latitude. In other words the radius depends on the latitudinal value. To let a user define a precision the `GeohashUtils.encodeLatLon()` method has been modified regarding this fact. The old parameter `precision` which were used to set the precision by the geohash length was changed to a cell size that should not be exceeded. This parameter is defined as fraction of the circumference of the geoid. The tree levels parameter is still provided and allows to set a maximum length of the generated hash.

Closes #37