Fixes that materials were no longer using concrete instances of shader programs and overhauls the Shader Manager class to utilize the asset pipeline.

* Changes that the Shader Manager creates Shader Program instances using the asset pipeline from now on (instead of loading all shaders manually)
Slightly tweaks DoF parameters.
Adds new GLSL Shader Program Instance class and thus splits asset and rendering functionality.

From now on shader programs solely wrap the shader source code and the material parameters (which both get loaded via the asset pipeline). They provide an interface for creating shader program instances. Shader program instances on the other hand contain the support for shader permutation compilation and all the OpenGL specific code. Only shader program instances can be actively used for rendering tasks. Each shader program instance is created using a given shader program and the shader program itself is kept as a reference, so the actual source code can be shared between all shader program instances. All shader program instances get disposed if the base shader program gets disposed.
Slightly water ambient lighting intensity.
Tweaks Tunnel (Railgun) action so it does not destroy the ground below you all the time.
Adds support for volumetric height fog. Can be turned on and off via the video config screen. Also...

* Shuffles around some features in the combine shader
* Tweaks in-scattering parameters to be a bit more intense
* Reduces size of skyband texture from 1/16th to 1/32th (that's really small)
* Adds some other cleanups...
Adds various rendering related fixes and tweaks.

* Fixes that the sky texture was completely black during the night
* Increases brightness during the night to compensate contrast changes introduced by the color grading lut
* Drastically improves volumetric fog rendering by sampling the skyband texture instead of a single color
* Increases blur factor for the skyband texture (so the clouds are not too obvious in dusty areas when looking towards the sky)
* Adds a new interpolated light value for the player position (smoothly updated over time so transitions between cells are smooth) which gets updated by the world renderer
* Adds that the volumetric fog effect gets disabled if the player stands in dark areas like trees (uses the new interpolated player light value to smoothen the appearance
Fixes that the interpolated player light value considered blocklight (which caused volumetric fog to become active around torches, lava,  ...).
Adjusts dynamic shadow intensity.
Adds some minor tweaks to TeraEd.
Fixes that the shadow frustum (light camera) was too close to the terrain which caused artifacts with really large mountains.
Adds some minor cleanups and tweaks with regard to the skysphere rendering.
Adds support for cloud shadows (available on "Ultra" with activated dynamic shadows).

* Slightly decreases the dynamic shadow intensity
* Adds missing clouds/perlin noise texture from my last commit.
Tweaks cloud shadows.

* Cloud shadows are now correctly modulated with dynamic shadows
* Cloud shadows should move ~2.5 as fast now
Sets blur level "Normal" as default - makes sense I guess?
Renames "Survival" type game mode to "Normal" for the time being.
Adds various rendering related optimizations.

* Deferred lighting now used stencil masking and an additional stencil geometry pass to avoid unnecessary per-pixel calculations
* Packed some properties into vec4s
* Added some checks to avoid unnecessary state changes
* Added caching mechanism for uniform locations to avoid stalling the GPU all the time
* Tweaked point light attenuation function
First version of moving minions along a path
several fixes