Custom exception fixes, Python 3 compatibility for mixin and tests

This should fix an issue with the custom `JSONResponseException`; it was not serialized properly for the response.

Running tests with Python 3.4.0, I also noticed that `str()` does not work as expected for byte-strings. On the other hand, skipping it can lead to errors from `json.loads()`. Explicitly decoding the content appeared to be the safest choice for supporting both Python 2 and 3.
However, I could only validate that in the unit tests, but not on a larger scale with real applications, since other libraries we use still require Python 2.