Add memcache provider

Add a new cache provider using memcache (the `memcaching` npm module).
The cache provider takes an `MemcacheClient` as input, and then uses that
client to cache `InResponseTo` validation checks, etc.

Unit tests have been updated to check both the `MemcacheCacheProvider`, and the
default `InMemoryCacheProvider`.
Hmm, we actually only require memcaching for this check, right? It would work equally well to not require the module, and instead assert that the `cacheClient` has methods for get/set/remove? I mean, it's not like it *needs* to be memcaching. We can just say "provide a cache client with this interface" or something...

But it's not necessary right now at this stage. Just a thought :-)