S3 client exceptions

I have added an `S3Metrics` object with `S3ClientExceptionsMetric` for counting any exceptions that happen around the AWS S3 client.

We have no monitoring anywhere in here, and this will give us more visibility.

If you use this client in your application and want to expose these metrics in `CloudWatch` then just add it to your `applicationMetrics`.