Checkpoint.  Manipulated things so that string literals are always
unicode, and a few other compensating changes, e.g. str <- unicode,
chr <- unichr, and repr() of a unicode string no longer starts
with 'u'.  Lots of unit tests are broken, but some basic things
work, in particular distutils works so the extensions can be built,
and test_builtin.py works.
diff --git a/Lib/distutils/extension.py b/Lib/distutils/extension.py
index 0fcbcc1..7fe846b 100644
--- a/Lib/distutils/extension.py
+++ b/Lib/distutils/extension.py
@@ -103,9 +103,9 @@
                   language=None,
                   **kw                      # To catch unknown keywords
                  ):
-        assert type(name) is StringType, "'name' must be a string"
+        assert isinstance(name, basestring), "'name' must be a string"
         assert (type(sources) is ListType and
-                map(type, sources) == [StringType]*len(sources)), \
+                all(isinstance(v, basestring) for v in sources)), \
                 "'sources' must be a list of strings"
 
         self.name = name