Define PY_SSIZE_T_CLEAN to use PyObject_CallFunction

When using the building functions for the fallback scenario
in readBytes, a SystemError is raised in python 3.10 (raised
as a warning till python 3.9) due to the use of "#yi" for the output
buffer argument.

Extra test cases are added to cover serialization/deserialization
both with compact & binary protocol both with and without the
c-extension
diff --git a/lib/py/Makefile.am b/lib/py/Makefile.am
index b163057..9b6d33b 100644
--- a/lib/py/Makefile.am
+++ b/lib/py/Makefile.am
@@ -30,6 +30,7 @@
 	$(PYTHON3) test/thrift_TZlibTransport.py
 	$(PYTHON3) test/thrift_TCompactProtocol.py
 	$(PYTHON3) test/thrift_TNonblockingServer.py
+	$(PYTHON3) test/thrift_TSerializer.py
 else
 py3-build:
 py3-test:
@@ -55,6 +56,7 @@
 	$(PYTHON) test/thrift_TZlibTransport.py
 	$(PYTHON) test/thrift_TCompactProtocol.py
 	$(PYTHON) test/thrift_TNonblockingServer.py
+	$(PYTHON) test/thrift_TSerializer.py
 
 
 clean-local: