Custom shaders now work and cleanup

-Added "bound_shader" identificator, so uniforms and attributes can be
set for the used (bound) shader instead of the default one all the time.
This allows custom shaders to work and I already tested some of them
(water, normal mapping, distortions etc.).
-Cleaned up shader loading - Now it uses GL3shader.h functions. This
means more consistent use, easier debugging (as the debugging functions
are inside the GL3shader.h functions) and no code duplication. This will
also make porting easier.
-Added some new functions glsl_ functions like glsl_shader_load_string()
which allows creating a shader from string. This is used to create the
project shaders at runtime.
-Most glsl_ functions are cleaner and have better debugging
capabilities.