SF patch# 1770008 by Christian Heimes (plus some extras).
Completely get rid of StringIO.py and cStringIO.c.

I had to fix a few tests and modules beyond what Christian did, and
invent a few conventions.  E.g. in elementtree, I chose to
write/return Unicode strings whe no encoding is given, but bytes when
an explicit encoding is given.  Also mimetools was made to always
assume binary files.
diff --git a/Lib/plat-mac/gensuitemodule.py b/Lib/plat-mac/gensuitemodule.py
index 10a996f..b487f55 100644
--- a/Lib/plat-mac/gensuitemodule.py
+++ b/Lib/plat-mac/gensuitemodule.py
@@ -12,7 +12,7 @@
 import string
 import sys
 import types
-import StringIO
+import io
 import keyword
 import macresource
 import aetools
@@ -266,7 +266,7 @@
 
 def decode(data, verbose=None):
     """Decode a resource into a python data structure"""
-    f = StringIO.StringIO(data)
+    f = io.StringIO(data)
     aete = generic(getaete, f)
     aete = simplify(aete)
     processed = f.tell()