Upload files via filename to AmazonS3Client

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.