Add the 'bool' type and its values 'False' and 'True', as described in
PEP 285.  Everything described in the PEP is here, and there is even
some documentation.  I had to fix 12 unit tests; all but one of these
were printing Boolean outcomes that changed from 0/1 to False/True.
(The exception is test_unicode.py, which did a type(x) == type(y)
style comparison.  I could've fixed that with a single line using
issubtype(x, type(y)), but instead chose to be explicit about those
places where a bool is expected.

Still to do: perhaps more documentation; change standard library
modules to return False/True from predicates.
diff --git a/Objects/fileobject.c b/Objects/fileobject.c
index 3179574..3e0b85e 100644
--- a/Objects/fileobject.c
+++ b/Objects/fileobject.c
@@ -1444,7 +1444,7 @@
 static char close_doc[] =
 "close() -> None or (perhaps) an integer.  Close the file.\n"
 "\n"
-"Sets data attribute .closed to true.  A closed file cannot be used for\n"
+"Sets data attribute .closed to True.  A closed file cannot be used for\n"
 "further I/O operations.  close() may be called more than once without\n"
 "error.  Some kinds of file objects (for example, opened by popen())\n"
 "may return an exit status upon closing.";
@@ -1488,11 +1488,11 @@
 static PyObject *
 get_closed(PyFileObject *f, void *closure)
 {
-	return PyInt_FromLong((long)(f->f_fp == 0));
+	return PyBool_FromLong((long)(f->f_fp == 0));
 }
 
 static PyGetSetDef file_getsetlist[] = {
-	{"closed", (getter)get_closed, NULL, "flag set if the file is closed"},
+	{"closed", (getter)get_closed, NULL, "True if the file is closed"},
 	{0},
 };