Switched to using hashes

* The KEYS command is very slow and not recommended
  by the Redis documentation.  So now storing cache
  definitions as hashes.  This allows for easy purging
  of a definition by just deleting the hash key.
* Removed cache_is_searchable interface because searching
  within hashes is not supported.  Could easily implement
  the searching on the client side though.
* Removed SUPPORTS_NATIVE_TTL because you cannot set TTL
  on hash keys.  A possible workaround it to just set a TTL
  on the hash.  Not ideal as some keys would expire early.
* Removed MODE_SESSION support flag as cache_is_searchable
  is required for session mode.
* Added tests