Move hashing to ETag header

This change-set moves the has provided for blobs into the ETag header which can be retrieved with a `HEAD` call to the endpoint of the blob, but is also returned when retrieving the file.