slconfig: remove support for global config

the global config it is not unused anyway
it simplifies the slConfig class and will eventually allow
to get rid of the settings class all together.
slconfig: remove HasSection, use Exists of base class
use base class SetPath
define macro to set defaults

The defaults are set during static initialization, so every code
after that can use them. Other code during initialization should
not relay on the defaults.
The interface is inspired by the one in spring RTS engine.
move config initialisation from Settings to slConfig::Create()

this allows to create slConfig on first access trhough Get()
use assert instead of warning on redefinition of default

also clean up a bit and provide more usage examples for the macro
define better to use ReadX() methods

this methods will also fail with an assert if no default was set
the default Read() methods of the base class are left alone
and available for advanced usecases
make Default::Get actauly work
simplify Default::Set()
fix ReadBool()
add shorter name to access slConfig: cfg()
move settings setup from springlobbyapp to settings

set defaults using SLCONFIG()
FIXME: useractions can not be setup in settings
slconfig: from settings move helper methods to show/count sub entries
settings: move methods concerning useractions to useractions
remove unused setting /General/SelfUpdateDisabled

it was never set anywhere and determines only if
the menu point "check for new version" is visible
settings: cleanup unused variables
settings: remove *AutoUpdate methods, show intended use of SLCONFIG()
refactor tabicons setting
refactor StartTab setting
refactor BroadcastEverywhere setting