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
* add cache_clear function to caching decorator
Fix minor bugs / correctness

* move puts into global scope to allow access from other functions
* override __str__ instead of __repr__ of date subclass as we return
  a lossy and 'unclear' representation
* cache_load defaults to previous cache location instead of a static
  default keyword argument
Add globalhash, retrohash
Improve unittest / geohash

* geohash.set_root to set/change all filepaths
* cache creates missing directories on write
* added remaining tests