
Angerwhale::Plugin::Cache - Catalyst plugin that caches responses and serves them when appropriate.

package Angerwhale;
use Catalyst qw/... +Angerwhale::Plugin::Cache .../;

On request, call back into the application to get a "revision number" of the data. If there's a cached version of this URL for the current revision, then return the cached version instead executing the whole request.
If the server sends conditional request headers, check the condition and send a 304 if that would be correct.
If the client supports gzip, send the gzipped version of the content, which is computed regardless and cached along with non-gzipped version.
(bandwidth savings)++

include/exclude list accessor
callback accessor
Init the plugin
Get the cache ID during prepare step.
Kill the dispatch cycle if we're going to return a cached response.
Store the document we generated during finalize_* to the cache
Returns true if the client would accept a gzip'd response.
Returns true if we should 304
Get the cache key for a given revision/URI pair

Needs a coderef in $c->config->{revision_callback} to return the revision number.