Make S3 signed URL expiry configurable, with 60s default

Per JENKINS-23897, S3 signed URLs for downloads were very sensitive to server
clock drift / time sync issues. The hardcoded 4 second expiry was too short even
if the server time was accurate if Jenkins took a moment to respond and/or
the request to S3 took a moment. On high latency links like 3G downloads frequently
failed.

Make the timeout configurable under Advanced, and default to 60 seconds instead
of 4.
forgot to rename help file
unlatching attribute name
prevent possible NPE
AbstractDescribableImpl refer to Jenkins class and prevent removability for this data class
Update AWS SDK to 1.9.6

This version is needed for EU_CENTRAL_1 region to be included.
Merge pull request #33 from ringerc/longer-url-expiry

Make S3 signed URL expiry configurable, with 60s default
Merge pull request #41 from wilgert/master

Update AWS SDK to 1.9.6
Allow S3 upload retry logic to function by draining remote to file

For local files, just grab the file name out of the path (poorly-named
getRemote()).

For remote files drain the file over the remoting channel over to a
tempfile on the master, then pass that tempfile into the client, then
delete the file in the finally block.

This allows AmazonS3Client's built in 'ResettableFileInputStream' to
kick in, which it does not when you directly pass a stream in the upload
request.

This only matters when proxying the upload through the master. All other
times, the file really exists on disk and the input stream is a normal
FileInputStream.
Merge pull request #29 from schrodinger/upload-via-filename

Upload files via filename to AmazonS3Client
Merge branch 'master' of https://github.com/jenkinsci/s3-plugin