setup.py: Use python from $PATH
Switch from Pyrex to Cython.

Cython is a fork that is better-maintained, and has better PyPy
support. PyZephyr is simple enough that the switch appears to require
no code changes.
Explicitly hold references to PyObject*s after conversion to char*.

If we are holding onto the char* version of a PyObject*, we need to
hold a reference to that PyObject itself. In CPython, the previous
code generally works because the ZNotice object would hold a reference
from __dict__. This assumption is not true in PyPy, and would also
break in weirder cases like someone subclassing ZNotice and replacing
'cls' with a property.

We can't just hold the objects in a Python list, because again, in
PyPy, that results in conversion to PyPy's internal format, which does
not hold onto the specific PyObject* generated by cpyext. So instead,
write some C code to maintain an object pool of objects to which we
need references.
Merge pull request #1 from nelhage/pypy

PyPy support