Add BaseTestCase and rename tests
Fix Message.json() in Python 3.4 (#42)

The Python 3.4 json library will not decode a ``bytes`` object, but rather requires a string. To create the string, the value is decoded as UTF-8. Since invoking the ``Message.json()`` method implies it is not a binary payload, this should be a safe behavior.