Adding content-type guessing to the S3 stream wrapper

The content-type guessing in the SDK currently relies on the EntityBody provided to various operations to tell the SDK the content-type of the file being uploaded. This convention cannot be followed in the stream wrapper when using operations like file_put_contents because the content is always a stream that does not expose its content-type. Because the stream wrapper is uploading to Amazon S3 using a PUT operation (meaning create this object at the URL provided), it is safe to infer the content-type from the destination URL (as opposed to the default of gleaming this from the source content).

See: https://forums.aws.amazon.com/thread.jspa?messageID=516152#516152