Apply modified version of Collin Winter's patch #1478788

Renames functional extension module to _functools and adds a Python
functools module so that utility functions like update_wrapper can be
added easily.
diff --git a/Lib/test/test_functional.py b/Lib/test/test_functools.py
similarity index 97%
rename from Lib/test/test_functional.py
rename to Lib/test/test_functools.py
index 5078a2e..609e8f4 100644
--- a/Lib/test/test_functional.py
+++ b/Lib/test/test_functools.py
@@ -1,4 +1,4 @@
-import functional
+import functools
 import unittest
 from test import test_support
 from weakref import proxy
@@ -21,7 +21,7 @@
 
 class TestPartial(unittest.TestCase):
 
-    thetype = functional.partial
+    thetype = functools.partial
 
     def test_basic_examples(self):
         p = self.thetype(capture, 1, 2, a=10, b=20)
@@ -140,7 +140,7 @@
         join = self.thetype(''.join)
         self.assertEqual(join(data), '0123456789')
 
-class PartialSubclass(functional.partial):
+class PartialSubclass(functools.partial):
     pass
 
 class TestPartialSubclass(TestPartial):