bpo-40170: Use inline _PyType_HasFeature() function (GH-22375)

Use _PyType_HasFeature() in the _io module and in structseq
implementation. Replace PyType_HasFeature() opaque function call with
_PyType_HasFeature() inlined function.
diff --git a/Modules/_io/iobase.c b/Modules/_io/iobase.c
index a8e55c3..195862d 100644
--- a/Modules/_io/iobase.c
+++ b/Modules/_io/iobase.c
@@ -349,8 +349,9 @@
     if (_PyIOBase_finalize((PyObject *) self) < 0) {
         /* When called from a heap type's dealloc, the type will be
            decref'ed on return (see e.g. subtype_dealloc in typeobject.c). */
-        if (PyType_HasFeature(Py_TYPE(self), Py_TPFLAGS_HEAPTYPE))
+        if (_PyType_HasFeature(Py_TYPE(self), Py_TPFLAGS_HEAPTYPE)) {
             Py_INCREF(Py_TYPE(self));
+        }
         return;
     }
     _PyObject_GC_UNTRACK(self);