Added HTTP caching support:
* mostly correct (supports cache-control, max-age, private and no-store headers)
* in-memory JS storage
* Redis database storage

Does not yet support:
* full cache-correctness (e.g. ETag validation)
* correct HTTP status codes