added variable precision geohash encoding

The precision of the resulting geohash was hard coded to 12. This change
adds the possibility to retrieve a geohash with a different precision.
To be compatible with the current API this functionality was added to a
new method EncodeWithPrecision. The old Encode functions calls the new
one with the value set to 12.