Delete entries from the cache after PUT/POST/DELETE requests.

A first stab on #42.

Some things that need to polishing:

* [ ] Log messages aren't helpful. Right now every request will be logged with `unacceptable, delete`. I'm not sure if we should check if the request was cached before to ensure that only real deletes gets logged as `delete`.
* [ ] As we cache both `GET` and `HEAD` differently, we need to try to delete both kind of requests in the same way. I'm not sure if this is the time to normalize that and treat all responses for a specific location the same.
* [ ] The RFC mentions that the cache must also purge entries based on the Location or Content-Location headers, so we might need to implement that.
i noticed the `cache_key_for` method also digests request headers, i think that makes perfect sense for normal GET requests, but when dealing with POST, PUT and DELETE type requests **we may need to change how we generate the cache key**

for instance in my project we need to set some extra authentication token to request header when perform one of those methods, so the cache key the `GET /posts/1` may differ from `DELETE /posts/1`.

also if we follow the `Location` header i assume it won't provide the request headers there either, maybe a pure url string based cache key is more sufficient? what do you think?