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_mhlib.py b/Lib/test/test_mhlib.py
index 1b1af6a..ad66ede 100644
--- a/Lib/test/test_mhlib.py
+++ b/Lib/test/test_mhlib.py
@@ -8,7 +8,8 @@
 
 import unittest
 from test.test_support import run_unittest, TESTFN, TestSkipped
-import os, StringIO
+import os
+import io
 import sys
 import mhlib
 
@@ -262,7 +263,7 @@
         f = mh.openfolder('dummy1')
         def create(n):
             msg = "From: foo\nSubject: %s\n\nDummy Message %s\n" % (n,n)
-            f.createmessage(n, StringIO.StringIO(msg))
+            f.createmessage(n, io.StringIO(msg))
 
         create(7)
         create(8)