Store the functions in the _type_equality_funcs as wrapped objects that are deep copyable.

This allows for the deep copying of TestCase instances.

Issue 5660
diff --git a/Lib/test/test_unittest.py b/Lib/test/test_unittest.py
index c16327e..38c4f8f 100644
--- a/Lib/test/test_unittest.py
+++ b/Lib/test/test_unittest.py
@@ -11,6 +11,7 @@
 import unittest
 from unittest import TestCase
 import types
+from copy import deepcopy
 
 ### Support code
 ################################################################
@@ -2688,6 +2689,17 @@
         self.failUnlessRaises(TypeError, lambda _: 3.14 + u'spam')
         self.failIf(False)
 
+    def testDeepcopy(self):
+        # Issue: 5660
+        class TestableTest(TestCase):
+            def testNothing(self):
+                pass
+
+        test = TestableTest('testNothing')
+
+        # This shouldn't blow up
+        deepcopy(test)
+
 
 class Test_TestSkipping(TestCase):