Limited retries on s3 segment puller exceptions

Useful for reducing spurious alerts due to general s3 flakiness.
Move retryS3Operation to S3Utils
Remove unused methods from S3Utils
Retry s3 operations on non-wrapped IOExceptions

Can happen if we get a socket related mishap while fetching an s3 object.
Merge pull request #191 from metamx/s3-puller-retries

S3 puller retries