Preliminary s3 driver implementation

DO NOT MERGE (uses goamz, which is lgpl)

Will have to use https://github.com/smartystreets/go-aws-auth or something else in the future.
Bucket.GetReader gets the full S3 object (https://github.com/crowdmob/goamz/blob/master/s3/s3.go#L217), but the S3 API actually natively supports byte ranges (http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html). This could be far more efficient for resumable downloads if our library supports this behavior.