Rework BufferProxy callback system; this changeset leaves Pygame broken
The new callback functions take their signatures from PyObject_GetBuffer and PyBuffer_Release. The callbacks are invoked as needed, when an export request is made on the BufferProxy object. The callbacks may be called multiple times, but always in pairs for each Py_buffer request. All bufferproxy_test.py unit tests pass for Python 2.7, but test_newbuf_arg segfaults for Python 3.3. This changeset is a proof-of-concept only. Further rewriting of bufferproxy.c and base.c are needed. Also, the Surface.get_buffer() method will need updating.