content_md5 should hash the final object, not the source file

In the case of gzipped content, this means that#content_md5 returns
the MD5 of the gzipped verison instead of the original. This way,
Resource#content_md5 returns the MD5 of the body S3 stores and
serves, allowing ETag: comparisons when synchronizing.