Support basic caching

For now, this is a really a simple MVP of what should eventually be far more configurable. This commit introduces a flag on a resource class to indicate if that resource is cacheable. Consumers of Loquor can then set these flags
and provide a cache implementation (such as Memcache) through the Loquor configuration.

If no cache flags are set (or if no cache is setup in configuration), then Loquor will continue to make HTTP requests for each API request.

Ultimately we could introduce timeouts, although maybe that can be handled purely in the consuming code.

/cc @iHiD