Please consider merging updates.

The new code allows storing a variety of headers with the object in S3 and has signed (instead of proxied) `PUT`s.