shader_runner/glslparsertest: choose GL version more accurately

Previously, both shader_runner and glslparsertest contained switch
statements that attempted to choose a GL version for testing based on
a GLSL version requirement, and those switch statements didn't choose
a GL version very accurately (for example, they converted GLSL version
1.50 to GL version 3.1, which doesn't work).

This patch replaces the switch statements with a single common
function (in piglit-util-gl-common) that does the right thing.
GLSL ES: Verify that fragment shaders have no default float precision.

Tested on the nVidia proprietary driver for Linux.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=60737
WIP: precision experiments
Fixups
WIP: geometry shader basic test
WIP: basic geometry shader test for ARB_geometry_shader4 extension
WIP: Adapt shader_runner.c for ARB_gs4
Generate geometry shader tests
Adapt glslparsertest for testing glsl-1.50 geometry shaders
Basic geometry shader GLSL parser test using GLSL 1.50.
Modify glslparsertest.c to work with ARB_gs4
Sanity compiler test for ARB_gs4
Adapt built-in constant folding tests for GS