Better S3 key repr support for unicode

This ensures that S3 `Key` objects always return a `str` type from the
`__repr__` method. On Python 3 this is essentially a no-op, but on Python
2 this means encoding the unicode characters before display. It fixes
the exception raised in #2516.
Merge pull request #2525 from danielgtaylor/s3-repr

Better S3 key repr support for unicode. Fixes #2525, #2516.