only upload file to AWS if MD5 hash has changed

Compares an MD5 hash of the local file to the stored MD5 on S3 (in the etag field) before uploading so that only changed files get uploaded to S3. Save time and $!
well this takes advantage of `file.etag` being MD5 - I do not think there is any other way to verify if file changed without downloading the whole file