Added retry mechanism for S3 connection errors

Closes #95
The [InternalAwsS3Service#client(...)](https://github.com/elasticsearch/elasticsearch-cloud-aws/pull/96/files#diff-1e3035dae20b48b1baca3aea5531318fR66) method can return different instances of clients depending on accesskey and endpoint provided as a parameter. So, I am returning different wrappers for each client here. In other words we might have multiple instances of clients.