Created etag caching middleware. Closes #1.

Created an etag caching middleware. It intercepts the body to generate
a checksum which is checked against the `If-None-Match` header if present.