Test varying structs in GLSL ES 3.00.

This patch adds the following GLSL ES 3.00 tests:

- varying-struct-basic: a simple test case involving a single varying
  struct.

- varying-struct-arrays: exercise complex interactions between structs
  and arrays in varyings.

- varying-struct-copy-vs: exercise corner cases where a struct
  internal to a vertex shader is copied to a varying struct.

- varying-struct-copy-fs: exercise corner cases where a varying struct
  is copied to a struct internal to a fragment shader.

- varying-struct-interpolation: verify that interpolation qualifiers
  "flat" and "smooth" are inherited by the fields within a varying
  struct.

- varying-struct-centroid: verify that the interpolation qualifier
  "centroid" is inherited by the fields within a varying struct.

Note that "centroid" is tested separately from the other interpolation
qualifiers since MSAA is required to verify that it works correctly,
so it can't be tested with a simple shader_runner test.
shader_runner regression with gles

Augment the parser that examines the shader_test file passed in
with the test to determine which brand of shader_running to
execute, shader_runner, shader_runner_gles2, etc.

This fixes a bug where GLSL ES if first in the [required] section
could match against GL after which the wrong shader_runner command
would be used due to the wrong gl api being used.

Last if plain GLSL is found, GL is presumed as the api. If GLSL ES
is found, GL ES is presumed as the api.

When dispatch is implemented for GLES all this can go away.

Signed-off-by: Tom Gall <tom.gall@linaro.org>