bpo-41428: Fix compiler warnings in unionobject.c (GH-22388)

Use Py_ssize_t type rather than int, to store lengths in
unionobject.c. Fix warnings:

Objects\unionobject.c(189,71): warning C4244: '+=':
conversion from 'Py_ssize_t' to 'int', possible loss of data

Objects\unionobject.c(182,1): warning C4244: 'initializing':
conversion from 'Py_ssize_t' to 'int', possible loss of data

Objects\unionobject.c(205,1): warning C4244: 'initializing':
conversion from 'Py_ssize_t' to 'int', possible loss of data

Objects\unionobject.c(437,1): warning C4244: 'initializing':
conversion from 'Py_ssize_t' to 'int', possible loss of data
diff --git a/Objects/unionobject.c b/Objects/unionobject.c
index 0ef7abb..e055a55 100644
--- a/Objects/unionobject.c
+++ b/Objects/unionobject.c
@@ -179,8 +179,8 @@
 static PyObject*
 flatten_args(PyObject* args)
 {
-    int arg_length = PyTuple_GET_SIZE(args);
-    int total_args = 0;
+    Py_ssize_t arg_length = PyTuple_GET_SIZE(args);
+    Py_ssize_t total_args = 0;
     // Get number of total args once it's flattened.
     for (Py_ssize_t i = 0; i < arg_length; i++) {
         PyObject *arg = PyTuple_GET_ITEM(args, i);
@@ -434,7 +434,7 @@
     unionobject* result = NULL;
 
     // Check arguments are unionable.
-    int nargs = PyTuple_GET_SIZE(args);
+    Py_ssize_t nargs = PyTuple_GET_SIZE(args);
     for (Py_ssize_t iarg = 0; iarg < nargs; iarg++) {
         PyObject *arg = PyTuple_GET_ITEM(args, iarg);
         if (arg == NULL) {