Adding support for If-Match

This pull request adds support for If-Match. The behavior is as follows:

On GET:
 * If the If-Match header is not supplied return the content as usual.
 * If the If-Match header is supplied, compare it to the RFC1123 formatted version of the modified_at timestamp. If they match return the content as usual. If the don't match, return a 412 (Precondition Failed).
 * Include an ETag header in all GET responses.

/cc @loganlinn