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/test/test_multifile.py b/Lib/test/test_multifile.py
index 437c394..b29137c 100644
--- a/Lib/test/test_multifile.py
+++ b/Lib/test/test_multifile.py
@@ -1,6 +1,6 @@
 import mimetools
 import multifile
-import cStringIO
+import io
 
 msg = """Mime-Version: 1.0
 Content-Type: multipart/mixed;
@@ -57,7 +57,7 @@
     global boundaries, linecount
     boundaries = 0
     linecount = 0
-    f = cStringIO.StringIO(msg)
+    f = io.StringIO(msg)
     getMIMEMsg(multifile.MultiFile(f))
     assert boundaries == 2
     assert linecount == 9