S3 retry

@hemantkr please review 
I haven't tested with talko_service yet, and will do that before merging, but would like to make sure you don't see any issues with this approach.
request isn't exported.