bpo-21222: Fix improperly merged change so that final hooks are called before types are cleared (GH-21304)

diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index e218808..00a9b99 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -1301,8 +1301,6 @@
         _PyGC_CollectNoFail();
     }
 
-    finalize_interp_types(tstate, is_main_interp);
-
     /* Clear all loghooks */
     /* Both _PySys_Audit function and users still need PyObject, such as tuple.
        Call _PySys_ClearAuditHooks when PyObject available. */
@@ -1310,6 +1308,8 @@
         _PySys_ClearAuditHooks(tstate);
     }
 
+    finalize_interp_types(tstate, is_main_interp);
+
     if (is_main_interp) {
         /* XXX Still allocated:
            - various static ad-hoc pointers to interned strings