added function to return all keys used in settings
added class ModConfiguration that represents a subset of the installed mods.
basic working version. server loads only mods explicitly declared to be loaded in world.mt file.
changed default handling of mod configuration

if load_mod_<modname> = false is found, the mod is not loaded.

if load_mod_<modname> = true is found, the mod is loaded (if found and
its dependencies are fullfilled). if the mod is not found, adds a complaint to debug.txt

if no load_mod_<modname> = ... line is found, the mod is loaded anyways.

This way, behaviour shouldn't change from before this patch.
fix bug in sorting/handling dependencies
changed message for non-existing mods which are declared to be loaded from info to error
(Very) basic version of GUI for mod selection support.
select the first mod automatically on start of the configure menu
show mod dependencies and reverse dependencies in mod configuration menu.
enable all/disable all buttons for modpacks now works and enables/disables (recursively) all mods in the modpack
basic keyboard controls for mod configuration gui.

up/down: scroll through tree of mods
left/right: collaps/expand a modpack
space: enable/disable the selected mod
fix segfault when no addon mods exist.
in mod configuration menu: double click on modname in dependency or reverse dependency listbox selects the corresponding mod
only show add-on mods as dependencies or reverse dependencies in the
configuration menu, not game/world mods.

Also, when enabling a mod, also enable its dependencies, and when
disabling a mod, also disable its reverse dependencies.
add little icons indicating enabled/disabled status to treeview of mods.
work around dodgy double-click handling for irrlicht listboxes.

also: general code cleanup.
mark new mods with a question mark in the configuration menu, until they are explicitely enabled/disabled. Also show a quick message when the configuration is saved.
minor cleanups.