Decode response body before parsing json

The encoding argument to `json.loads` is deprecated in python3
and fails silently:

```
The ``encoding`` argument is ignored and deprecated.
```

So instead the bytestring is decoded before being handed
off to the json parser.

The response parsing tests are updated to load the file as a bytestring and then hand it off to the parser.  This simulates what happens with `response.content`.  I verified that without the change to response.py the json parsing tests would fail.

I'll also add a basic smoke test to the CLI to ensure we run a JSON service end to end.

cc @garnaat @toastdriven