bpo-36763: Add _PyInitError functions (GH-13395)

* Add _PyInitError functions:

  * _PyInitError_Ok()
  * _PyInitError_Error()
  * _PyInitError_NoMemory()
  * _PyInitError_Exit()
  * _PyInitError_IsError()
  * _PyInitError_IsExit()
  * _PyInitError_Failed()

* frozenmain.c and _testembed.c now use functions rather than macros.
* Move _Py_INIT_xxx() macros to the internal API.
* Move _PyWstrList_INIT macro to the internal API.
diff --git a/Programs/_testembed.c b/Programs/_testembed.c
index 000b2fc..2352179 100644
--- a/Programs/_testembed.c
+++ b/Programs/_testembed.c
@@ -389,7 +389,7 @@
     preconfig.utf8_mode = 1;
 
     err = _Py_PreInitialize(&preconfig);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         _Py_ExitInitError(err);
     }
 
@@ -512,7 +512,7 @@
     config.pathconfig_warnings = 0;
 
     err = _Py_InitializeFromConfig(&config);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         _Py_ExitInitError(err);
     }
     dump_config();
@@ -543,7 +543,7 @@
     config.parse_argv = parse_argv;
 
     err = _Py_InitializeFromConfig(&config);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         _Py_ExitInitError(err);
     }
     dump_config();
@@ -653,7 +653,7 @@
 
     test_init_env_dev_mode_putenvs();
     err = _Py_InitializeFromConfig(&config);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         _Py_ExitInitError(err);
     }
     dump_config();
@@ -672,7 +672,7 @@
     preconfig.isolated = 1;
 
     err = _Py_PreInitialize(&preconfig);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         _Py_ExitInitError(err);
     }
 
@@ -682,7 +682,7 @@
 
     test_init_env_dev_mode_putenvs();
     err = _Py_InitializeFromConfig(&config);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         _Py_ExitInitError(err);
     }
     dump_config();
@@ -701,7 +701,7 @@
     preconfig.isolated = 0;
 
     err = _Py_PreInitialize(&preconfig);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         _Py_ExitInitError(err);
     }
 
@@ -717,7 +717,7 @@
 
     test_init_env_dev_mode_putenvs();
     err = _Py_InitializeFromConfig(&config);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         _Py_ExitInitError(err);
     }
     dump_config();
@@ -734,7 +734,7 @@
     _PyPreConfig_InitIsolatedConfig(&preconfig);
 
     err = _Py_PreInitialize(&preconfig);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         _Py_ExitInitError(err);
     }
 
@@ -744,13 +744,13 @@
 
     _PyCoreConfig config;
     err = _PyCoreConfig_InitIsolatedConfig(&config);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         _Py_ExitInitError(err);
     }
     config.program_name = L"./_testembed";
 
     err = _Py_InitializeFromConfig(&config);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         _Py_ExitInitError(err);
     }
     dump_config();
@@ -767,19 +767,19 @@
     _PyPreConfig_InitPythonConfig(&preconfig);
 
     err = _Py_PreInitialize(&preconfig);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         _Py_ExitInitError(err);
     }
 
     _PyCoreConfig config;
     err = _PyCoreConfig_InitPythonConfig(&config);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         _Py_ExitInitError(err);
     }
     config.program_name = L"./_testembed";
 
     err = _Py_InitializeFromConfig(&config);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         _Py_ExitInitError(err);
     }
     dump_config();
@@ -798,14 +798,14 @@
     preconfig.coerce_c_locale_warn = 1;
 
     err = _Py_PreInitialize(&preconfig);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         _Py_ExitInitError(err);
     }
 
     _PyCoreConfig config = _PyCoreConfig_INIT;
     config.program_name = L"./_testembed";
     err = _Py_InitializeFromConfig(&config);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         _Py_ExitInitError(err);
     }
 
@@ -824,7 +824,7 @@
     config.dev_mode = 1;
     config.program_name = L"./_testembed";
     _PyInitError err = _Py_InitializeFromConfig(&config);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         _Py_ExitInitError(err);
     }
     dump_config();
@@ -840,30 +840,30 @@
     _PyCoreConfig_Init(&config);
 
     err = _PyCoreConfig_DecodeLocale(&config.program_name, "./init_read_set");
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         goto fail;
     }
 
     err = _PyCoreConfig_Read(&config);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         goto fail;
     }
 
     if (_PyWstrList_Append(&config.module_search_paths,
                            L"init_read_set_path") < 0) {
-        err = _Py_INIT_NO_MEMORY();
+        err = _PyInitError_NoMemory();
         goto fail;
     }
 
     /* override executable computed by _PyCoreConfig_Read() */
     err = _PyCoreConfig_SetString(&config.executable, L"my_executable");
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         goto fail;
     }
 
     err = _Py_InitializeFromConfig(&config);
     _PyCoreConfig_Clear(&config);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         goto fail;
     }
     dump_config();
@@ -898,7 +898,7 @@
     configure_init_main(&config);
 
     _PyInitError err = _Py_InitializeFromConfig(&config);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         _Py_ExitInitError(err);
     }
 
@@ -914,7 +914,7 @@
     config._init_main = 0;
 
     _PyInitError err = _Py_InitializeFromConfig(&config);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         _Py_ExitInitError(err);
     }
 
@@ -928,7 +928,7 @@
     }
 
     err = _Py_InitializeMain();
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         _Py_ExitInitError(err);
     }
 
@@ -951,7 +951,7 @@
     config.program_name = L"./python3";
 
     _PyInitError err = _Py_InitializeFromConfig(&config);
-    if (_Py_INIT_FAILED(err)) {
+    if (_PyInitError_Failed(err)) {
         _Py_ExitInitError(err);
     }