Issue 5665: add more pickling tests.

- Add tests for the module-level load() and dump() functions.
- Add tests for cPickle's internal data structures, stressing workloads
with many gets/puts.
- Add tests for the Pickler and Unpickler classes, in particular the
memo attribute.
- test_xpickle is extended to test backwards compatibility with Python
2.4, 2.5 and 2.6 by round-tripping pickled objects through a worker
process. This is guarded with a regrtest -u xpickle resource.
diff --git a/Lib/test/test_cpickle.py b/Lib/test/test_cpickle.py
index 88057c7..0541873 100644
--- a/Lib/test/test_cpickle.py
+++ b/Lib/test/test_cpickle.py
@@ -1,6 +1,7 @@
 import cPickle, unittest
 from cStringIO import StringIO
 from test.pickletester import AbstractPickleTests, AbstractPickleModuleTests
+from test.pickletester import AbstractPicklerUnpicklerObjectTests
 from test import test_support
 
 class cPickleTests(AbstractPickleTests, AbstractPickleModuleTests):
@@ -90,6 +91,12 @@
         b = self.loads(self.dumps(a))
         self.assertEqual(a, b)
 
+class cPicklePicklerUnpicklerObjectTests(AbstractPicklerUnpicklerObjectTests):
+
+    pickler_class = cPickle.Pickler
+    unpickler_class = cPickle.Unpickler
+
+
 class Node(object):
     pass
 
@@ -120,6 +127,7 @@
         cPickleListPicklerTests,
         cPickleFastPicklerTests,
         cPickleDeepRecursive,
+        cPicklePicklerUnpicklerObjectTests,
     )
 
 if __name__ == "__main__":