Add a download strategy that downloads tarballs from public and private S3 buckets

Added AWS4DownloadStrategy, which downloads tarballs from public and private S3 buckets

AWS4DownloadStrategy uses your AWS access tokens (in the standard environment variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY) to sign the request.  This strategy is good in a corporate setting, because it lets you use a private S3 bucket as a repo for internal distribution.  (AWS S3 = AWS4, get it!)