Add a bunch of GIL release/acquire points in tp_print implementations and for
PyObject_Print().

Closes issue #1164.
diff --git a/Objects/fileobject.c b/Objects/fileobject.c
index 4c5b37d..16786f8 100644
--- a/Objects/fileobject.c
+++ b/Objects/fileobject.c
@@ -2241,7 +2241,9 @@
 			err_closed();
 			return -1;
 		}
+		Py_BEGIN_ALLOW_THREADS
 		fputs(s, fp);
+		Py_END_ALLOW_THREADS
 		return 0;
 	}
 	else if (!PyErr_Occurred()) {