Urgent Unicode support contributions for X11R6

With the rapid introduction of UCS (ISO 10646) / Unicode as the
primary character set in many programming environments (Win32, WWW,
Java, XML, Perl, Python, TCL, Ada95, etc.) the lack of proper support
for ISO 10646 in X11 has become the single most significant
shortcoming of the X11 platform and sample implementation today.
Unicode support needs to be addressed with highest priority in
forthcoming X11 sample implementation releases.

XFree86 has worked over the past two years in order to find
solutions for at least the most urgent ISO 10646 related shortcomings
of X11.

Three very simple aspects of this work are now stable,
widely-reviewed, uncontroversial and ready for immediate integration
into X11R6:

into locale-independent UTF-8 equivalents
Xutf8DrawImageString, Xutf8DrawText, Xutf8LookupString,
etc. Many modern programming environments (Perl, Python, TCL/Tk, many
web browsers and widget sets) now handle all their text data
internally in UTF-8, independent of the currently selected locale,
while they use at the same time locale-dependent C functions. As a
result, calls to the Xlib multi-byte functions have to be encapsulated
by application developpers with potentially highly inefficient and
multi-threading unsafe setlocale calls plus additional
measures to preserve multi-threading safety. This clumsy and
inefficient programming style could be easily avoided if Xlib provided
a UTF-8 API. The amount of code added to Xlib is negligible (a few
kilobytes), but the practicality gain is significant.]