look in further caches for missing items, add meet

if the first available cache doesn't have an item,
it should pass on the request to further caches
to make sure that the db request is necessary.

`mset` was not part of the CacheInstance interface
but it was set up in all of the cache instances.

add in-memory cache
add tests for staggered reads, writes, and deletes
remove old RedundantCacheGroup test

It relied on memcached really heavily. The existence
of the in-memory cache should help relieve that
dependency to make the RedundantCacheGroup more
testable.