cleanup added class for parser context, added first cut for push mode

* python/Makefile.am python/types.c: cleanup
* python/libxml.c python/libxml.py python/libxml_wrap.h
  python/generator.py python/libxml2-python-api.xml
  python/libxml2class.txt: added class for parser context, added
  first cut for push mode support. Added a framework to generate
  accessors functions.
* python/tests/Makefile.am python/tests/push.py: added a push
  test
Daniel
diff --git a/python/libxml_wrap.h b/python/libxml_wrap.h
index 972e871..d6d89aa 100644
--- a/python/libxml_wrap.h
+++ b/python/libxml_wrap.h
@@ -1,3 +1,4 @@
+#include <Python.h>
 #include <libxml/tree.h>
 #include <libxml/parser.h>
 #include <libxml/parserInternals.h>
@@ -27,6 +28,12 @@
     xmlXPathContextPtr obj;
 } PyxmlXPathContext_Object;
 
+#define PyparserCtxt_Get(v) (((PyparserCtxt_Object *)(v))->obj)
+typedef struct {
+    PyObject_HEAD
+    xmlParserCtxtPtr obj;
+} PyparserCtxt_Object;
+
 PyObject * libxml_intWrap(int val);
 PyObject * libxml_xmlCharPtrWrap(xmlChar *str);
 PyObject * libxml_constxmlCharPtrWrap(const xmlChar *str);
@@ -40,5 +47,7 @@
 PyObject * libxml_xmlElementPtrWrap(xmlElementPtr ns);
 PyObject * libxml_doubleWrap(double val);
 PyObject * libxml_xmlXPathContextPtrWrap(xmlXPathContextPtr ctxt);
+PyObject * libxml_xmlParserCtxtPtrWrap(xmlParserCtxtPtr ctxt);
 PyObject * libxml_xmlXPathObjectPtrWrap(xmlXPathObjectPtr obj);
 
+xmlXPathObjectPtr libxml_xmlXPathObjectPtrConvert(PyObject * obj);