idea: Allow merging by geohash
[Geohashing](https://en.wikipedia.org/wiki/Geohash) ([python implementation](https://github.com/vinsci/geohash/) ) provides a convenient way to join records based on location. 

In a geohashed value, additional digits represent additional degrees of precision. When joining records based on geohash, the general strategy is to try joining on the full geohash, and then drop precision from both sides until you find a match. 

In pseudocode:

```
def get_geohash_matches(self, other, self_col, other_col):
    for row in self.iterrows():
        self_geohash = row[self_col]
        has_match = False
        precision_dropped = 0
        max_precision = 12
        while not has_match:
        	less_precise_self = self_geohash[:max_precision-precision_dropped]
        	less_precise_other = other[other_col].str[:max_precision-precision_dropped]

        	matches = other[less_precise_other == less_precise_self]
        	if len(matches) > 0:
        		has_match = True

        		# this is not quite right
        		return matches

        	precision_dropped+=1
```


What would you think about providing a convenient implementation of this in pandas, perhaps as a parameter that could be passed to dataframe merges?