Fix initialization of the faulthandler module

faulthandler requires the importlib if "-X faulthandler" option is present on
the command line, so initialize faulthandler after importlib.

Add also an unit test.
diff --git a/Lib/test/test_faulthandler.py b/Lib/test/test_faulthandler.py
index 1138f8f..8c12b21 100644
--- a/Lib/test/test_faulthandler.py
+++ b/Lib/test/test_faulthandler.py
@@ -7,6 +7,7 @@
 import subprocess
 import sys
 from test import support, script_helper
+from test.script_helper import assert_python_ok
 import tempfile
 import unittest
 
@@ -256,6 +257,20 @@
         finally:
             sys.stderr = orig_stderr
 
+    def test_disabled_by_default(self):
+        # By default, the module should be disabled
+        code = "import faulthandler; print(faulthandler.is_enabled())"
+        rc, stdout, stderr = assert_python_ok("-c", code)
+        stdout = (stdout + stderr).strip()
+        self.assertEqual(stdout, b"False")
+
+    def test_sys_xoptions(self):
+        # Test python -X faulthandler
+        code = "import faulthandler; print(faulthandler.is_enabled())"
+        rc, stdout, stderr = assert_python_ok("-X", "faulthandler", "-c", code)
+        stdout = (stdout + stderr).strip()
+        self.assertEqual(stdout, b"True")
+
     def check_dump_traceback(self, filename):
         """
         Explicitly call dump_traceback() function and check its output.
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index 6ee9a5f..cafc09a 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -356,10 +356,6 @@
 
     _PyImportHooks_Init();
 
-    /* initialize the faulthandler module */
-    if (_PyFaulthandler_Init())
-        Py_FatalError("Py_Initialize: can't initialize faulthandler");
-
     /* Initialize _warnings. */
     _PyWarnings_Init();
 
@@ -368,6 +364,10 @@
 
     import_init(interp, sysmod);
 
+    /* initialize the faulthandler module */
+    if (_PyFaulthandler_Init())
+        Py_FatalError("Py_Initialize: can't initialize faulthandler");
+
     _PyTime_Init();
 
     if (initfsencoding(interp) < 0)