Revise how MD5 are computed and store

GZip files are a little tricky. They store the mtime of the compressed file as part of the
GZip file's metadata. As a result, merely touching an original file in the build directory
is enough to change the GZipped file's checksum.

Even better, GZipping the same file with an identical mtime on 2 different OS will also
result in a file with a different checksum.

As a result, the etag provided by Amazon was no longer an accurate fingerprint for the content
of files. We are however able to store custom metadata against an s3 resource.

The downside is that the custom header is leaked out to the browser. It is however small
enough to not add significant overhead.

Fixes #11