Added retry mechanism for S3 connection errors

Closes #95
Wondering why we get a `BAD REQUEST` here from Amazon.
By the way, could it be another value than that? Something like `Internal Error (500)`?

Looking at the [full list](http://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html), I'm wondering if we can get any other error which could require a retry? 

* 409 Conflict
* 500 Internal Server Error
* 503 Service Unavailable / Slow Down