bpo-40421: Add pyframe.h header file (GH-19755)

Add a new separated pyframe.h header file of the PyFrame public C
API: it is included by Python.h.

Add PyFrame_GetLineNumber() to the limited C API.

Replace "struct _frame" with "PyFrameObject" in header files.
PyFrameObject is now defined as struct _frame by pyframe.h which is
included early enough in Python.h.
diff --git a/Include/pystate.h b/Include/pystate.h
index 65b0a24..34cad02 100644
--- a/Include/pystate.h
+++ b/Include/pystate.h
@@ -13,7 +13,6 @@
 
 /* Forward declarations for PyFrameObject, PyThreadState
    and PyInterpreterState */
-struct _frame;
 struct _ts;
 struct _is;
 
@@ -88,7 +87,7 @@
 #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03090000
 /* New in 3.9 */
 PyAPI_FUNC(PyInterpreterState*) PyThreadState_GetInterpreter(PyThreadState *tstate);
-PyAPI_FUNC(struct _frame*) PyThreadState_GetFrame(PyThreadState *tstate);
+PyAPI_FUNC(PyFrameObject*) PyThreadState_GetFrame(PyThreadState *tstate);
 PyAPI_FUNC(uint64_t) PyThreadState_GetID(PyThreadState *tstate);
 #endif