* Supports vanilla Redis, hiredis, and Redis::Distributed.
* Supports Memcached-like sharding across Redises with Redis::Distributed.
* Fault tolerant. If the Redis server is unavailable, no exceptions are
raised. Cache fetches are treated as misses and writes are dropped.
* Local cache. Hot in-memory primary cache within block/middleware scope.
* `read_/write_multi` support for Redis mget/mset. Use Redis::Distributed
4.0.1+ for distributed mget support.
* `delete_matched` support for Redis KEYS globs.
Split up the caching tests as prep for adding a new cache store. Slices
the mega test/caching_test.rb into behavior modules, concrete store
tests, and cross-cutting store tests.
Considering moving cache store behavior modules into lib/ so they may be
used for acceptance testing by third parties.