Revision of the "books" mod.
* Made bookcases stackable
* when destroyed, bookcases drop their content - be careful with 99-er stacks ;)
* consistent naming (bookshelf -> bookcase)
* package structuring
Drastically reduces intensity of block light.
Adds some minor shader cleanups and fixes that blocks without available normal maps in the atlas were not correctly lit with normal mapping enabled.

* Sets the default background texture color for the normal texture atlas to r=0.5, g=0.5, b=1.0 which equals the unit vector [0.0, 0.0, 1.0] when being decoded in the chunk shader
* Reduces flickering light effect - no more ghosts turning your torches on and off to scare you at night
Adds minor cleanups and tweaks ocean waves settings.
Introduced MapGenerators that consists of several ChunkGenerators.
MapGenerators/ChunkGenerators can now be placed in mods.
CreateNewWorldUI modified to dynamically load MapGens.
Introduced GameType and GameTypeManager.
Refactored some code.
Example Light and Shadow game type.
Halves the resolution and thus the file size of the menu and loading background textures.
Adds JPEG version of the background texture for the README file.
Merge PR #626 from @skaldarnar - books revision
Merge PR #621 from @synopia - mapgen/gametype structure overhaul
Adds frustum culling for light components.
Adds light rendering distance property to the light component (can be used to disable light rendering for lights in the distance). Currently set 0.0f == always render the light by default.
Fixes that directional lights were culled by distance.
fixes several issues: #630, #631, #632
Merge pull request #634 from synopia/gametype

Fixes several issues: #630, #631, #632
Fixes some style mismatches of the recently merged PR.
Adds some minor cleanups and rendering tweaks. Also adds a first draft of a z-prepass optimization (currently disabled due to z-fighting issues).

* Changes that all render queues in the world renderer get sorted from front to back or vice versa (currently not needed)
* Renamed transparent chunk pass to refractive pass (since they're treated as opaque chunks and nothing gets actually blended)
* Renamed alpha blend chunk type to refractive
* Renamed renderTransparent() method to renderAlphaBlend() (only entities can utilize real alpha blending at the moment - chunks use the refraction approach)
* Changes that all alpha blend entities are no longer written to the depth buffer
* Cleans up the world renderer debug string to be a bit more compact - and also removes some not too interesting elements
Compile fix for my recent commit.
Fix for light propagation in issue #635
Adds some rendering and overall related fixes and tweaks. Also merges the MaterialShader and the ShaderProgram classes to the new GLSL Shader Program class.

* Removes Material Shader class and adds new, omnipotent GLSL Shader Program class
* Adds some new helper methods to the GLSL Shader Program class
* Overhauls how available shader permutations are defined (the shader source code is now analyzed for the available feature defines)
* Changes that the mesh and skeleton renderer uses shader parameters to set the camera matrices from now on to speed things up (batch rendering has to be ported though)
* Renames genericMesh shader to genericMeshMaterial
* Fixes that ladders were neither translucent nor double sided
* Adds overlay and first person rendering to the default rendering process chain - blocks carried in the hand will always be rendered using alpha test and not alpha blend to avoid ordering artifacts
* Adds that blocks and items in the hand of the player get affected by deferred lighting
* Unifies block light lighting calculations in the shaders and on engine side (dropped blocks should now be more or less share their light intensity with chunk blocks)
* Adds some cleanups and tweaks to the crafting system
* Fixes that the crafting grid did not use up the full size of one block (one third was approximated with 0.3 instead of something like (0.33333333)
* Tweaks how the crafting grid looks (removes alpha blend selection box and replaces it with a AABB that become thicker when selected)
* Adds helper method for specifying active render targets for a given FBO to the default rendering process
* Removes shader parameter class for generic meshes (not used by the material system)
* Cleans up many of the available shader (especially those which are related to the material system)
* Fixes that glass blocks were not rendered as double sided
* Adjusts default and default textured shaders to work with deferred render path
* Deletes unnecessary shader meta data files for shaders which are not used as materials
* I'm sure there are some other things I've forgot to mention here...