Replace al_get_default_{hlsl,glsl}_*_shader with al_get_default_*_shader.

This greatly simplifies the code needed to set up the default shaders.

Right now these new functions return NULL when the platform is unavailable. This isn't a problem in using them without checking their return values as if that is the case then al_create_shader will have already failed earlier.
Stick a #version statement inside all GLSL shaders.
ex_shader_multitex_pixel.glsl was using the wrong macro to detect GLES
Detect GLES from within the default GLSL pixel shader.

The idea is that if by some ungodly reason the source is generated on an non-GLES platform gets used on a GLES platform it will still work.
Specify the floating point precision in all the GLSL pixel shaders, just in case.
Improve the documentation of the shader addon.

Notable changes include:
- Remove the notion that ALLEGRO_SHADER is either a vertex shader OR a pixel shader. It is both at once, and you need both to get meaningful output across platforms (in fact Direct3D does not need a pixel shader for correct output. OpenGL definitely does, however).
- Document the types of the uniforms that Allegro relies on.
- Document how the vertex attributes are passed to HLSL shaders.
Fix a small memory leak in OpenGL shaders.
Fix some threading and memory issues on iOS.