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
Yeah it previously failed with a `UnicodeDecodeError` in Python 2.6/2.7/pypy. Now it passes with the change to the `Key` class. I could add some other assertions, but wasn't sure what exactly to add.