Calculate Content-MD5 when writing blobs

Blobstore which enforce MD5 can protect against a class of IO errors.
String and URL payloads use a ByteArrayPayload which calculates MD5
implicitly.