Implement PEP 238 in its (almost) full glory.

This introduces:

- A new operator // that means floor division (the kind of division
  where 1/2 is 0).

- The "future division" statement ("from __future__ import division)
  which changes the meaning of the / operator to implement "true
  division" (where 1/2 is 0.5).

- New overloadable operators __truediv__ and __floordiv__.

- New slots in the PyNumberMethods struct for true and floor division,
  new abstract APIs for them, new opcodes, and so on.

I emphasize that without the future division statement, the semantics
of / will remain unchanged until Python 3.0.

Not yet implemented are warnings (default off) when / is used with int
or long arguments.

This has been on display since 7/31 as SF patch #443474.

Flames to /dev/null.
diff --git a/Include/compile.h b/Include/compile.h
index 89c5ba4..e5840af 100644
--- a/Include/compile.h
+++ b/Include/compile.h
@@ -41,6 +41,8 @@
    effect, this passes on the "from __future__ import generators" state
    in effect when the code block was compiled. */
 #define CO_GENERATOR_ALLOWED    0x1000
+/* XXX Ditto for future division */
+#define CO_FUTURE_DIVISION    	0x2000
 
 extern DL_IMPORT(PyTypeObject) PyCode_Type;
 
@@ -64,6 +66,7 @@
     int ff_last_lineno;
     int ff_nested_scopes;
     int ff_generators;
+    int ff_division;
 } PyFutureFeatures;
 
 DL_IMPORT(PyFutureFeatures *) PyNode_Future(struct _node *, char *);
@@ -76,6 +79,9 @@
 #define GENERATORS_DEFAULT 0
 #define FUTURE_GENERATORS "generators"
 
+#define DIVISION_DEFAULT 0
+#define FUTURE_DIVISION "division"
+
 /* for internal use only */
 #define _PyCode_GETCODEPTR(co, pp) \
 	((*(co)->co_code->ob_type->tp_as_buffer->bf_getreadbuffer) \