gs: Test that input arrays can be accessed dynamically.

Most geometry shaders access their input arrays using a constant index
(or an index that is constant after loop unrolling).  This test checks
that we get the right results if we access a geometry shader input
array using a non-constant index.
xfb: Fix max_varyings/max_xfb_varyings mix-up.

The transform feedback max-varyings test had a mix-up between
max_varyings (the number of varying vec4's supported by the
implementation) and max_xfb_varyings (the number of transform feedback
output vec4's supported by the implementation).

As a result, we would run the test as though both values were
max_xfb_varyings, but we would check the results as though both values
were max_varyings.  This would cause spurious failures on
implementations for which max_varyings is greater than
max_xfb_varyings.
gs: less demanding tests for triangle strips.

Commit 2ef33fd introduced some fairly demanding tests to verify that
for each possible input primitive type, vertices are delivered to the
geometry shader in the proper order.

Some hardware may not be able to satisfy all of OpenGL's ordering
requirements for GL_TRIANGLE_STRIP and GL_TRIANGLE_STRIP_ADJACENCY (in
particular, Intel Ivy Bridge requires some workarounds, and I haven't
yet determined whether those workarounds are possible in all
circumstances).

In case the implementation can't get the ordering exactly right, we
still want to make sure that (a) triangle orientation is correct, and
(b) with GL_TRIANGLE_STRIP_ADJACENCY, adjacent vertices are correctly
ordered relative to the primary triangle vertices.
gs: Test corner case for triangle strip ordering with primitive restart.

Verified using the NVIDIA proprietary driver for linux.
gs: Test interaction between gl_PrimitiveIDIn and primitive restart.

Verified using the NVIDIA proprietary driver for linux.
!UPSTREAM: Test core GS inputs on GLSL 1.50

TODO:
- Make this work.