use the static identifier api for looking up special methods

I had to move the static identifier code from unicodeobject.h to object.h in
order for this to work.
diff --git a/Objects/enumobject.c b/Objects/enumobject.c
index 00a3346..23b3808 100644
--- a/Objects/enumobject.c
+++ b/Objects/enumobject.c
@@ -224,8 +224,8 @@
 {
     Py_ssize_t n;
     PyObject *seq, *reversed_meth;
-    static PyObject *reversed_cache = NULL;
     reversedobject *ro;
+    _Py_IDENTIFIER(__reversed__);
 
     if (type == &PyReversed_Type && !_PyArg_NoKeywords("reversed()", kwds))
         return NULL;
@@ -233,7 +233,7 @@
     if (!PyArg_UnpackTuple(args, "reversed", 1, 1, &seq) )
         return NULL;
 
-    reversed_meth = _PyObject_LookupSpecial(seq, "__reversed__", &reversed_cache);
+    reversed_meth = _PyObject_LookupSpecial(seq, &PyId___reversed__);
     if (reversed_meth != NULL) {
         PyObject *res = PyObject_CallFunctionObjArgs(reversed_meth, NULL);
         Py_DECREF(reversed_meth);