Test version/extension checking functions in Context.
Ability to check that extension is supported in particular version.

Will be used in shader compilation when we need to decide based on
both GLSL version used *and* extension support.
Shaders: better preprocessor code formatting.
Allow shader layout qualifiers only with GLSL 1.40 (GL 3.1) and above.

Even if the extension specification describes the minimum required
version as GL 2.1 (or doesn't mention it at all), most compilers can't
handle `layout(...)` before input/output declaration. These drivers mark
the extensions as supported on GL < 3.1, but then can't handle them at
all: Mesa fails to compile it with GLSL 1.20, NVidia fails with GLSL
1.30.

Also updated `EXPLICIT_*` defines in Shaders/compatibility.glsl to
reflect this change.
Shaders: extension support queries depend on selected GLSL version.

Also added GLSL 1.30 (GL 3.0) into version list. Should fix issues where
extension is supported but is not available in selected GLSL version.
Shaders: extension queries depending on GLSL version in MeshVisualizer.

The geometry shader implementation somehow expects GLSL 1.50 and is not
working on GLSL 1.40 (probably inconsistent variable naming in
extension and core specification). Added checks for that. Might fix this
properly someday when there is need for geometry shader in GL 3.1.