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/setup.py b/setup.py
index 0abafd9..9b2fac4 100644
--- a/setup.py
+++ b/setup.py
@@ -377,8 +377,8 @@
         exts.append( Extension("_heapq", ["_heapqmodule.c"]) )
         # operator.add() and similar goodies
         exts.append( Extension('operator', ['operator.c']) )
-        # functional
-        exts.append( Extension("functional", ["functionalmodule.c"]) )
+        # _functools
+        exts.append( Extension("_functools", ["_functoolsmodule.c"]) )
         # Python C API test module
         exts.append( Extension('_testcapi', ['_testcapimodule.c']) )
         # profilers (_lsprof is for cProfile.py)