!UPSTREAM: Test core GS inputs on GLSL 1.50

TODO:
- Make this work.
gs: Test rules related to geometry shader input sizes.

Section 4.3.8.1 (Input Layout Qualifiers) of the GLSL 1.50 spec
contains some tricky rules for how the sizes of geometry shader input
arrays are related to the input layout specification.  In essence,
those rules boil down to the following:

- If an input array declaration does not specify a size, and it
  follows an input layout declaration, it is sized according to the
  input layout.

- If an input layout declaration follows an input array declaration
  that didn't specify a size, the input array declaration is given a
  size at the time the input layout declaration appears.

- All input layout declarations and input array sizes must ultimately
  match.  Inconsistencies are reported as soon as they are detected,
  at compile time if the inconsistency is within one compilation unit,
  otherwise at link time.

- At least one compilation unit must contain an input layout
  declaration.

This patch includes tests for verifying all of these behaviours,
modelled as closely as possible from the text and examples in the GLSL
1.50 spec.  Both interface block style and and non-interface block
style declarations are tested.

v2: Test layout vs explicit size more thoroughly: don't just test the
case where one compilation unit specifies a layout with N vertices and
another compilation unit specifies an input with size >N.  Also test
the case where the second compilation unit specifies an input with
size <N.