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_errors.py b/tests/test_errors.py
index 9af8490..8a58030 100644
--- a/tests/test_errors.py
+++ b/tests/test_errors.py
@@ -28,7 +28,7 @@
 from googleapiclient.errors import HttpError
 
 
-JSON_ERROR_CONTENT = """
+JSON_ERROR_CONTENT = b"""
 {
  "error": {
   "errors": [
@@ -65,7 +65,7 @@
 
   def test_bad_json_body(self):
     """Test handling of bodies with invalid json."""
-    resp, content = fake_response('{',
+    resp, content = fake_response(b'{',
         { 'status':'400', 'content-type': 'application/json'},
         reason='Failed')
     error = HttpError(resp, content)
@@ -73,7 +73,7 @@
 
   def test_with_uri(self):
     """Test handling of passing in the request uri."""
-    resp, content = fake_response('{',
+    resp, content = fake_response(b'{',
         {'status':'400', 'content-type': 'application/json'},
         reason='Failure')
     error = HttpError(resp, content, uri='http://example.org')
@@ -81,7 +81,7 @@
 
   def test_missing_message_json_body(self):
     """Test handling of bodies with missing expected 'message' element."""
-    resp, content = fake_response('{}',
+    resp, content = fake_response(b'{}',
         {'status':'400', 'content-type': 'application/json'},
         reason='Failed')
     error = HttpError(resp, content)
@@ -89,12 +89,12 @@
 
   def test_non_json(self):
     """Test handling of non-JSON bodies"""
-    resp, content = fake_response('}NOT OK', {'status':'400'})
+    resp, content = fake_response(b'}NOT OK', {'status':'400'})
     error = HttpError(resp, content)
     self.assertEqual(str(error), '<HttpError 400 "Ok">')
 
   def test_missing_reason(self):
     """Test an empty dict with a missing resp.reason."""
-    resp, content = fake_response('}NOT OK', {'status': '400'}, reason=None)
+    resp, content = fake_response(b'}NOT OK', {'status': '400'}, reason=None)
     error = HttpError(resp, content)
     self.assertEqual(str(error), '<HttpError 400 "">')