ARB_shading_language_packing: fix exact tests

Commit 78435fe (ARB_shading_language_packing: Allow some imprecision
in unpackUnorm4x8) inadvertently introduced a regression to the
unpackHalf2x16 tests.  In those tests, the "exact" uniform wasn't
being initialized, resulting in the tests being run in inexact
fashion.

Surprisingly, this actually produced a failure, because inexact
testing uses "distance(actual, expect) < 0.00001" as the pass/fail
criterion, and this doesn't work when actual == expect == Infinity
(because distance(Inf, Inf) == NaN).

We always intended to test unpackHalf2x16 in exact fashion anyhow, so
the fix is to go ahead and initialize the "exact" uniform to 1 for
this case.

Reviewed-by: Matt Turner <mattst88@gmail.com>
glslparsertest: Fix parsing of GL_SHADING_LANGUAGE_VERSION in GLES.

In desktop GL, glGetString(GL_SHADING_LANGUAGE_VERSION) returns a
string that begins with the supported version number.  But in GLES,
the version number is preceded by the text "OpenGL ES GLSL ES ".  This
was causing glslparsertest to fail to parse the implementation's
supported GLSL version, and that in turn caused parse_glsl_version()
function to access uninitialized memory.

This patch splits parse_glsl_version() into two functions:
parse_glsl_version_number(), which parses the bare version number, and
parse_glsl_version_string(), which expects the prefix "OpenGL ES GLSL
ES " when compiled for GLES testing.
glslparsertest: Don't require ES compatibility extensions when testing GLES.

glslparsertest should only check for the presence of
GL_ARB_ES{2,3}_compatibility when the test is running under desktop
GL.  GLES never exposes these extensions.
glslparsertest: Avoid uninitialized vars in parse_glsl_version_number.

Previously, if the user specified an ill-formed GLSL version number
(or the implementation supplied an ill-formed number in its response
to glGetString(GL_SHADING_LANGUAGE_VERSION)), glslparsertest would
access uninitialized variables, resulting in unpredictable (and often
confusing) behaviour.

With this patch, glslparser test accepts version numbers either of the
form "<int>" or "<int>.<int>".  Ill-formed version numbers lead to a
test failure.