support extra (required) S3 pre-signed headers

This adds initial support for extra signed headers that can be used in a pre-signed `POST` URL. The extra headers supplied by the client at upload time.