Added gzip support

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