This fixes two issues:
1) InitialiseWorld created the Chunk Storage before resolving the World Generator. If the World Generator could not be resolved, the chunk storage was never properly disposed, leading to threads still running in the background and the server never shutting down.
2) Some initialisation stages return to the main menu (via changing state to the main menu state). Since the headless server does not have a main menu, this should actually shut the server down. Implemented this using a StateChangeListener that forces the server to shut down whenever it changes to the main menu state in headless mode.
Added an option that allows light contribution to be clamped to (1,1,1), effectively reducing oversaturation.
Added a lot more video options (currently all under experimental/high end since impact is unknown).
When debugging is enabled for rendering, an OpenGL debug context is created and a debug hook is registered. This logs a lot of info from the graphics driver in the log.
Validates that the server signature validates before starting the server. If it doesn't validate, it will create a new one. This fixes issues that arise when the server identity gets corrupted for whatever reason.
Merge #1239 by @shartte - server cert improvement
Properly close terasology and free the mouse for the crash reporter when a crash occurs.
New run config for IntelliJ that runs with the CrashReporter (CR) enabled when needed for testing
Merge pull request #1245 from flo/better-crash-handling

Properly close terasology and free the mouse for the crash reporter when a crash occurs.
Fixed restoreSpeed debug command to restore correct speed values and to restore fall damage.
Update Artifactory URLS to terasology.org
Merge pull request #1248 from msteiger/artifactory_urls

Update Artifactory URLs to terasology.org
Added missing file.
Add a run config for IntelliJ that launches another instance of the game into its own terasology-2ndclient data dir, good for multiplayer testing
Unnecessary import statements removed
Merge pull request #1251 from synopia/develop

Unnecessary import statements removed
Calling dispose on an assets will now automatically unregister it.

This patch makes all assets that extend from AbstractAsset
automatically unregister themself at the asset manager when they get
disposed.

This prevents module developers from causing memory leaks
when they only call dispose on the asset.
Don't let GLSL materials and shaders dispose themselfs completly at reload.
Make AbstractAsset implement isDisposed() so that it works always properly.
Create new NullPreftabs to ensure that they are not disposed.
Don't load data for disposed assets, log an error if it is tried.
Make the onDispose and onReload methods protected as they should not be called.