moved string and UTF8 routines out of parser.c and encoding.c into a new

* encoding.c, parser.c, xmlstring.c, Makefile.am,
  include/libxml/Makefile.am, include/libxml/catalog.c,
  include/libxml/chvalid.h, include/libxml/encoding.h,
  include/libxml/parser.h, include/libxml/relaxng.h,
  include/libxml/tree.h, include/libxml/xmlwriter.h,
  include/libxml/xmlstring.h:
  moved string and UTF8 routines out of parser.c and encoding.c
  into a new module xmlstring.c with include file
  include/libxml/xmlstring.h mostly using patches from Reid
  Spencer.  Since xmlChar now defined in xmlstring.h, several
  include files needed to have a #include added for safety.
* doc/apibuild.py: added some additional sorting for various
  references displayed in the APIxxx.html files.  Rebuilt the
  docs, and also added new file for xmlstring module.
* configure.in: small addition to help my testing; no effect on
  normal usage.
* doc/search.php: added $_GET[query] so that persistent globals
  can be disabled (for recent versions of PHP)
diff --git a/doc/apibuild.py b/doc/apibuild.py
index 541e838..a0b3f28 100755
--- a/doc/apibuild.py
+++ b/doc/apibuild.py
@@ -1666,11 +1666,11 @@
 	    module = self.modulename_file(file)
 	    output.write("    <file name='%s'>\n" % (module))
 	    dict = self.headers[file]
-	    ids = dict.functions.keys() + dict.variables.keys() + \
+	    ids = uniq(dict.functions.keys() + dict.variables.keys() + \
 		  dict.macros.keys() + dict.typedefs.keys() + \
-		  dict.structs.keys() + dict.enums.keys()
+		  dict.structs.keys() + dict.enums.keys())
 	    ids.sort()
-	    for id in uniq(ids):
+	    for id in ids:
 		output.write("      <ref name='%s'/>\n" % (id))
 	    output.write("    </file>\n")
         pass
@@ -1787,7 +1787,7 @@
 	    tokens = index[id];
 	    tokens.sort()
 	    tok = None
-	    for token in index[id]:
+	    for token in tokens:
 		if tok == token:
 		    continue
 		tok = token