Handle APIErrors with unicode contents.

When there's a diff parsing error from the server that includes utf-8, we'd do
a string concatentation between a unicode string and bytes. This change makes
things consistent to avoid implicit encoding.

Testing done:
* Ran unit tests.
* Did some stuff to artificially generate an error and saw that things worked.

Fixes part of bug 3376.
Fixup.

I had some uncommitted changes when I pushed the last commit. Oops.