added io1.c an example ox xmlIO usage and io1.res test result, fixed a

* doc/examples/*: added io1.c an example ox xmlIO usage and io1.res
  test result, fixed a awful lot of memory leaks showing up in
  testWriter.c, changed the examples and the Makefiles to test
  memory leaks.
* xmlwriter.c: fixed a memory leak
* Makefile.am: run the doc/examples regression tests as part of
  make tests
* xpath.c include/libxml/xpath.h: added xmlXPathCtxtCompile() to
  compile an XPath expression within a context, currently the goal
  is to be able to reuse the XSLT stylesheet dictionnary, but this
  opens the door to others possible optimizations.
* dict.c include/libxml/dict.h: added xmlDictCreateSub() which allows
  to build a new dictionnary based on another read-only dictionnary.
  This is needed for XSLT to keep the stylesheet dictionnary read-only
  while being able to reuse the strings for the transformation
  dictionnary.
* xinclude.c: fixed a dictionnar reference counting problem occuring
  when document parsing failed.
* testSAX.c: adding option --repeat for timing 100times the parsing
* doc/* : rebuilt all the docs
Daniel
diff --git a/xinclude.c b/xinclude.c
index 2697cfa..e4f9821 100644
--- a/xinclude.c
+++ b/xinclude.c
@@ -454,7 +454,12 @@
     }
     else {
         ret = NULL;
-        xmlFreeDoc(pctxt->myDoc);
+	if (pctxt->myDoc != NULL) {
+	    if ((ctxt->doc != NULL) && (ctxt->doc->dict != NULL) &&
+	        (pctxt->myDoc->dict == ctxt->doc->dict))
+		xmlDictReference(ctxt->doc->dict);
+	    xmlFreeDoc(pctxt->myDoc);
+	}
         pctxt->myDoc = NULL;
     }
     xmlFreeParserCtxt(pctxt);