Add optional docstrings to getset descriptors.  Fortunately, there's
no backwards compatibility to worry about, so I just pushed the
'closure' struct member to the back -- it's never used in the current
code base (I may eliminate it, but that's more work because the getter
and setter signatures would have to change.)

As examples, I added actual docstrings to the getset attributes of a
few types: file.closed, xxsubtype.spamdict.state.
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index b53555d..9e6d3df 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -91,7 +91,7 @@
 	return res;
 }
 
-struct getsetlist type_getsets[] = {
+PyGetSetDef type_getsets[] = {
 	{"__name__", (getter)type_name, NULL, NULL},
 	{"__module__", (getter)type_module, NULL, NULL},
 	{"__dict__",  (getter)type_dict,  NULL, NULL},
@@ -659,7 +659,7 @@
 	}
 }
 
-struct getsetlist subtype_getsets[] = {
+PyGetSetDef subtype_getsets[] = {
 	{"__dict__", subtype_dict, NULL, NULL},
 	{0},
 };
@@ -1282,7 +1282,7 @@
 }
 
 static int
-add_getset(PyTypeObject *type, struct getsetlist *gsp)
+add_getset(PyTypeObject *type, PyGetSetDef *gsp)
 {
 	PyObject *dict = type->tp_defined;