Add Dlg_*_Init callback to dialogues. To be used e.g. for starting timers of NPC activities.

Also fix scenario saving of attention state in dialogue object.
Merge all of the audio provider switches into one

There's no point in splitting the audio library selection into multiple
CPP macros, since there can always only be one anyway. Merge all of them
into a single macro AUDIO_TK (for "toolkit") and have CMake select one
for the user, instead of making him choose (and potentially failing).
mape: Don't hold the GDK thread lock (#1091)

The lock was from times when the GTK+ widget was updated directly
from the render thread, but this is not the case anymore, so it
can be removed without substitution.
Ship a fallback natupnp.h

MinGW doesn't bring a natupnp.h out of the box. Add one to the repository
so MinGW builds also support UPnP/NAT-PMP.
Only fallback to natupnp.h on Windows
gitignore: Only ignore mape executable, not src/mape directory
Allow C4ScriptHost to load a script from memory

This will allow mape to feed the Map.c that is being edited directly to
the map generator.
Link C4MapScript into mape

Remove the two dependencies to ::Game from C4MapScript, so that ::Game
does not need to be linked into mape, which would basically drag the
whole rest of the engine after itself.
Allow MapScript generator to use non-global material and texture maps
mape: Add interface to run the new script map generator
mape: Default to the new map generator

Only use the C4MapCreatorS2, when the file is called "Landscape.txt".
mape: Add syntax highlighting for Map.c files
mape: Fix crash when InitializeMap() returns false
mape: Make sure error messages from the linker are shown
mape: Initialize script engine only once instead of per-rendering
mape: Also load syntax highlighting from current directory and repository
mape: Implement minimalist C4DefList
mape: Load the Library_Map script
mape: Set output window size to size of generated map

This is useful when a Map.c script specifies the size of the map.
mape: Re-initialize script engine between renderings

Otherwise there are warnings when the user changes the value of a
constant, since it was initialized with a different value at the
time of the previous rendering.