Handle binary data in request body, and better handling of text in response body

Binary data in request body would cause an exception as JSON encoder attempts to decode as UTF-8.  Catch this in advance and convert to base64.

Text data in response body has been stored as quoted printable, but this is annoyingly overcooked most of the time, and is hard to manually search and replace data in traces.  Try to store response body as UTF-8 encoded text first, falling back to quoted printable only when necessary.

Neither of these change should break request keys or responses for existing traces.