Avoid xmlChar outside of DFXML.c

libxml2 defines the xmlChar type to be an unsigned char. It uses UTF-8
encoding for all strings, which is what we also use, but defines this
separate type to force the programmer to treat "normal" C strings
differently from UTF-8 strings.

For DocFormats, we work on the assumption that anything stored in a
char* is UTF-8. This is safe, because of the backwards-compatible design
of UTF-8, which encodes all non-ASCII characters using multi-byte
sequences with the top bit set. For all purposes other than accessing
specific non-ASCII characters, you can treat a UTF-8 string in the same
way as you would treat strings in a single-byte encoding. Thus there's
no need to make a distinction between "C strings" and UTF-8 strings.

The only circumstances in which this assumption would break if someone
were to use an encoding other than UTF-8 as input, e.g. from an XML
file. Any conversion from other character encodings to and from UTF-8
should be handled at the point of entry/exit of the data, so we can just
rely on one standard encoding in all other code (as libxml2 does).
Use DFCharIsHex in place of isHexChar

These two functions did exactly the same thing, so there is no need for
the latter.
Remove libxml include from DFDOM.h

Now the only file that uses libxml is DFXML.c; all the rest of the code
is entirely independent of it.