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.

cc @jamesls, @kyleknap
How does this test fail? Is it just if a UnicodeEncodeError is thrown?