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.
They can be changed by overriding the retry function, so no need for them here. It might be nice to have a retry function that takes parameters to make it easy though.