Add geohash unittest

* modify sys.path for module import
* moved parser creation in factory function
* created main function
Add cache dynamicism

It wasn't possible to explicitly change the cache state or filepath. This
allows for much greater control and testing potential.

* add cache_load function to caching decorator