Merging the py3k-pep3137 branch back into the py3k branch.
No detailed change log; just check out the change log for the py3k-pep3137
branch.  The most obvious changes:

  - str8 renamed to bytes (PyString at the C level);
  - bytes renamed to buffer (PyBytes at the C level);
  - PyString and PyUnicode are no longer compatible.

I.e. we now have an immutable bytes type and a mutable bytes type.

The behavior of PyString was modified quite a bit, to make it more
bytes-like.  Some changes are still on the to-do list.
diff --git a/Lib/test/test_audioop.py b/Lib/test/test_audioop.py
index 194d783..fada40c 100644
--- a/Lib/test/test_audioop.py
+++ b/Lib/test/test_audioop.py
@@ -87,7 +87,7 @@
         print('add')
     data2 = []
     for d in data:
-        str = bytes(len(d))
+        str = buffer(len(d))
         for i,b in enumerate(d):
             str[i] = 2*b
         data2.append(str)
@@ -177,7 +177,7 @@
         print('mul')
     data2 = []
     for d in data:
-        str = bytes(len(d))
+        str = buffer(len(d))
         for i,b in enumerate(d):
             str[i] = 2*b
         data2.append(str)
@@ -207,7 +207,7 @@
 def testtomono(data):
     if verbose:
         print('tomono')
-    data2 = b''
+    data2 = buffer()
     for d in data[0]:
         data2.append(d)
         data2.append(d)
@@ -218,7 +218,7 @@
 def testtostereo(data):
     if verbose:
         print('tostereo')
-    data2 = b''
+    data2 = buffer()
     for d in data[0]:
         data2.append(d)
         data2.append(d)