Added gzip support

Support for streams with gzip is partial because the S3.putObject function does not accept a stream with an unknown length (such as a gzip stream)