test: Fix result decoding of error bodies

Some tests were failing under Py3K since the json library behaves a little
differently when it comes to decoding bytestrings. To fix this, the
simulate_request helper method was extended to take a new "decode" arg,
so tests can get a decoded string right off the bat.

Here is the docstring:

decode: If set to a character encoding, such as 'utf-8',
    the method will assume the response is a single
    byte string and will decode it and return a single
    wide string instead of the raw WSGI response iterable.