Add the co_extra field and accompanying APIs to code objects.

This completes PEP 523.
diff --git a/Python/ceval.c b/Python/ceval.c
index bf19a5b..9109ea5 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -5608,3 +5608,17 @@
 }
 
 #endif
+
+Py_ssize_t
+_PyEval_RequestCodeExtraIndex(freefunc free)
+{
+    PyThreadState *tstate = PyThreadState_Get();
+    Py_ssize_t new_index;
+
+    if (tstate->co_extra_user_count == MAX_CO_EXTRA_USERS - 1) {
+        return -1;
+    }
+    new_index = tstate->co_extra_user_count++;
+    tstate->co_extra_freefuncs[new_index] = free;
+    return new_index;
+}