bpo-39882: Py_FatalError() logs the function name (GH-18819)

The Py_FatalError() function is replaced with a macro which logs
automatically the name of the current function, unless the
Py_LIMITED_API macro is defined.

Changes:

* Add _Py_FatalErrorFunc() function.
* Remove the function name from the message of Py_FatalError() calls
  which included the function name.
* Update tests.
diff --git a/Include/cpython/pyerrors.h b/Include/cpython/pyerrors.h
index f8480fb..ab2e740 100644
--- a/Include/cpython/pyerrors.h
+++ b/Include/cpython/pyerrors.h
@@ -178,6 +178,12 @@
     const char *err_msg,
     PyObject *obj);
 
+PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalErrorFunc(
+    const char *func,
+    const char *message);
+
+#define Py_FatalError(message) _Py_FatalErrorFunc(__func__, message)
+
 #ifdef __cplusplus
 }
 #endif