applied patch from Alfred Mickautsch, bugfixes and comments added his test

* xmlwriter.c include/libxml/xmlwriter.h: applied patch from
  Alfred Mickautsch, bugfixes and comments
* doc/examples/*: added his test as the xmlWriter example
* doc/html/ doc/*.html: this resulted in some improvements
* include/libxml/hash.h: fixed an inclusion problem when
  <libxml/hash.h> wasn't preceeded by <xml/parser.h>
Daniel
diff --git a/doc/APIfunctions.html b/doc/APIfunctions.html
index 9e635f1..f99d7b0 100644
--- a/doc/APIfunctions.html
+++ b/doc/APIfunctions.html
@@ -1309,6 +1309,7 @@
 <a href="html/libxml-tree.html#xmlNewDtd">xmlNewDtd</a><br />
 <a href="html/libxml-tree.html#xmlNewGlobalNs">xmlNewGlobalNs</a><br />
 <a href="html/libxml-tree.html#xmlNewReference">xmlNewReference</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterTree">xmlNewTextWriterTree</a><br />
 <a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
 <a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
 <a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
@@ -1365,6 +1366,7 @@
 <a href="html/libxml-xpath.html#xmlXPathNewContext">xmlXPathNewContext</a><br />
 <a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
 <a href="html/libxml-xpointer.html#xmlXPtrNewContext">xmlXPtrNewContext</a><br />
+</p><h2>Type xmlDocPtr *:</h2><p><a href="html/libxml-xmlwriter.html#xmlNewTextWriterDoc">xmlNewTextWriterDoc</a><br />
 </p><h2>Type xmlDtdPtr:</h2><p><a href="html/libxml-valid.html#xmlAddAttributeDecl">xmlAddAttributeDecl</a><br />
 <a href="html/libxml-valid.html#xmlAddElementDecl">xmlAddElementDecl</a><br />
 <a href="html/libxml-valid.html#xmlAddNotationDecl">xmlAddNotationDecl</a><br />
@@ -1582,6 +1584,7 @@
 <a href="html/libxml-tree.html#xmlNewNsPropEatName">xmlNewNsPropEatName</a><br />
 <a href="html/libxml-tree.html#xmlNewProp">xmlNewProp</a><br />
 <a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterTree">xmlNewTextWriterTree</a><br />
 <a href="html/libxml-tree.html#xmlNodeAddContent">xmlNodeAddContent</a><br />
 <a href="html/libxml-tree.html#xmlNodeAddContentLen">xmlNodeAddContentLen</a><br />
 <a href="html/libxml-tree.html#xmlNodeBufGetContent">xmlNodeBufGetContent</a><br />
@@ -1815,6 +1818,7 @@
 <a href="html/libxml-parserInternals.html#xmlNewInputFromFile">xmlNewInputFromFile</a><br />
 <a href="html/libxml-parserInternals.html#xmlNewInputStream">xmlNewInputStream</a><br />
 <a href="html/libxml-parserInternals.html#xmlNewStringInputStream">xmlNewStringInputStream</a><br />
+<a href="html/libxml-xmlwriter.html#xmlNewTextWriterPushParser">xmlNewTextWriterPushParser</a><br />
 <a href="html/libxml-parserInternals.html#xmlNextChar">xmlNextChar</a><br />
 <a href="html/libxml-xmlIO.html#xmlNoNetExternalEntityLoader">xmlNoNetExternalEntityLoader</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />