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.
WIP: varying struct xfb: basic-struct errors
WIP: varying struct xfb: basic-struct get
WIP