move x-amz-meta-s3cmd-attrs handling into S3.py

This is AWS-specific metadata.  It should be handled in exactly one
place, S3.py, rather than ad-hoc in several places.
use metadata-stored md5 in bucket list, put, and info

Now that we can reasonably expect response['s3cmd-attrs'] to contain
valid md5 data, use that in the bucket list and info commands instead
of ETags if available.

Furthermore, be sure to store these attributes
in the put command, either when --preserve is given, or if we will be
uploading a multi-chunk file.  We were storing these with the sync
--preserve command, be sure to do it in put also.
Merge branch 'bug/remote-md5sum' into merge