This updates several Python type definitions and uses to bring us closer
to Python 3 compatibility. This includes:
* Replacing staticforward and statichere with static. These were a hack for
old compilers and are not supported/needed anymore.
* Using Py_TYPE() instead of ob_type; ob_type is hidden in Py3.
* Replacing getattr with getters/setters. getattr is sort-of supported in
Py3, but Py_FindMethod is not. So we just use the newer
methods/getsetters mechanisms and start using PyType_Ready everywhere.
* Use PyVarObject_HEAD_INIT for types, since types are PyVarObject.
* Use PyMODINIT_FUNC for module initialization functions.
There are some tab/space issues in this commit. I'm set for spaces; the
source is a little schizo.