Transparent caching

Added new class to allow caching to be more transparent:
* Configure memcache server
* Pass all query related methods through memcache calls
 * Return cached data if available
 * If not, fetch data and store in memcache
* Added new config and documentation