bpo-40521: Make tuple free list per-interpreter (GH-20247)

Each interpreter now has its own tuple free lists:

* Move tuple numfree and free_list arrays into PyInterpreterState.
* Define PyTuple_MAXSAVESIZE and PyTuple_MAXFREELIST macros in
  pycore_interp.h.
* Add _Py_tuple_state structure. Pass it explicitly to tuple_alloc().
* Add tstate parameter to _PyTuple_ClearFreeList()
* Each interpreter now has its own empty tuple singleton.
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index da66a82..9da3fb0 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -1252,7 +1252,9 @@
     if (is_main_interp) {
         /* Sundry finalizers */
         _PyFrame_Fini();
-        _PyTuple_Fini();
+    }
+    _PyTuple_Fini(tstate);
+    if (is_main_interp) {
         _PyList_Fini();
         _PySet_Fini();
         _PyBytes_Fini();