Moving X-Amz-* headers to the query string with pre-signed URLs

- Each x-amz-* header can be moved to the query string after creating a
  pre-signed URL. This ensures that pre-signed URLs can be created for
  requests that utilize custom HTTP headers.
- Closes #250.
- Makes it so that setting ContentMD5 to false with pre-signed PUTs is no longer required.