COMMON: Add underlying type names to Common::String.

The value_type is analogous to std::basic_string::value_type.
The unsigned_type on the other hand is an unsigned type of the value_type which
allows to obtain an character without nasty sign extension.
COMMON: Add simple UTF-32 string class U32String.
GRAPHICS: Let Font take uint32 as character codes.

This is required to support UTF-32 strings but does not make them work
automatically!
GRAPHICS: Get rid of _glyphSlots in TTFFont.
GRAPHICS: Allow TTFFont to cache glyphs when required.

This should allow TTFFont to display UTF-32 characters from fonts.
GRAPHICS: Allow Font to accept U32String as strings.
WINTERMUTE: Switch WideString to U32String.
COMMON: Document U32String a bit better.
COMMON: Document Common::String::unsigned_type.
BUILD: Split configure.engines down to a single file per engine.

This is the first part of allowing engines to be added dynamically.
They are placed into a folder in engines/ which must contain a file
named "configure.engine" to add the engine, which is pulled into the
top level configure script automatically.
BUILD: Split engines.mk down to a single file per engine.

This is the second part of allowing engines to be added dynamically.
Each folder in engines/ which must contain a file named "engine.mk"
containing the make definitions for that engine.
BUILD: Split engines/plugins_table header down to a file per engine.

This is the third and final commit enabling fully pluggable engines.

Now providing an engine folder contains a configure.engine, engine.mk
and engine-plugin.h file, it will be picked up automatically by the
configure script.
BUILD: Remove need for engine-plugin.h in engines.

This is now generated automatically by the configure script from the
engine directory names.
BUILD: Remove need for engine.mk in each engine directory.

Each engine now only has to provide a single configure.engine file
adding the engine into the configure script, which then produces the
required other files automatically.
DEVTOOLS: Adapt create_project for new configure.engine files.

I could not try any generated project files since I do not have access to
the IDEs.
BUILD: Add engines/plugins_table.h to git in the ideprojects target.
BUILD: Partial solution for parallel make issue.

This is due to the multiple outputs produced by the configure rule,
which cause multiple invocations of configure when make is run in
parallel. Various solutions are detailed in the Multiple-Outputs
section of the GNU automake manual which apply generally to makefiles.

This solution is a simpler one, but should solve the problem, though it
can fail on "mutilated" trees ie. where some of the configure outputs
are present, but not all... but this situation is not common, tends to
be due to an error in configure and should be recoverable by a
"make clean && ./configure" call.
BUILD: Create engines/ dir if necessary, to fix out-of-tree builds
DEVTOOLS: Factor out function to create directories in create_project.
DEVTOOLS: Adapt create_project to create engines/ dir if necessary