Added option to compare on ETag/MD5

We have a use case for s3 sync in which we update a staging bucket with production data.  However, the current comparator options will fail to update keys in the staging bucket when they have been updated more recently than the production keys but do not differ in size.

This change adds a --compare-on-etag option that uses the ETag of the key or the md5 of the local file to determine whether or not the source and destination differ.