Fix unicode issues in HttpError and BatchHttpRequest

1) HttpError parses http response by json.loads. It accepts only
unicode on PY3 while response is bytes. So decode response first.

2) BatchHttpRequest uses email.parser.FeedParser. It accepts only
unicode on PY3, too. So encode parsed response to emulate normal
http response.
diff --git a/tests/test_json_model.py b/tests/test_json_model.py
index b198652..1784f8e 100644
--- a/tests/test_json_model.py
+++ b/tests/test_json_model.py
@@ -150,7 +150,7 @@
     model = JsonModel(data_wrapper=False)
     resp = httplib2.Response({'status': '401'})
     resp.reason = 'Unauthorized'
-    content = '{"error": {"message": "not authorized"}}'
+    content = b'{"error": {"message": "not authorized"}}'
 
     try:
       content = model.response(resp, content)