bpo-44219: Release the GIL during isatty syscalls (GH-28250) (GH-28255)

Release the GIL while performing isatty() system calls on arbitrary
file descriptors. In particular, this affects os.isatty(),
os.device_encoding() and io.TextIOWrapper. By extension,
io.open() in text mode is also affected.
(cherry picked from commit 06148b1870fceb1a21738761b8e1ac3bf654319b)

Co-authored-by: Vincent Michel <vxgmichel@gmail.com>
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 25ddc82..18761cc 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -10062,9 +10062,11 @@ os_isatty_impl(PyObject *module, int fd)
 /*[clinic end generated code: output=6a48c8b4e644ca00 input=08ce94aa1eaf7b5e]*/
 {
     int return_value;
+    Py_BEGIN_ALLOW_THREADS
     _Py_BEGIN_SUPPRESS_IPH
     return_value = isatty(fd);
     _Py_END_SUPPRESS_IPH
+    Py_END_ALLOW_THREADS
     return return_value;
 }