allow configuring of encoding, cacheControl, expirationTimeRuleId

I'm uploading gzipped content to S3 so I need to set the ContentEncoding to 'gzip' when uploading.

I also added configuration for other setters of [ObjectMetadata](http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/model/ObjectMetadata.html): [setCacheControl](http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/model/ObjectMetadata.html#setCacheControl(java.lang.String)), [setExpirationTimeRuleId](http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/model/ObjectMetadata.html#setExpirationTimeRuleId(java.lang.String)).



I couldn't do [setHttpExpiresDate](http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/model/ObjectMetadata.html#setHttpExpiresDate(java.util.Date)) (I'm really rust at Java). But it'd be really nice if someone could implement it as well.


This solves [JENKINS-23441](https://issues.jenkins-ci.org/browse/JENKINS-23441) I opened today.