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.

v2: Use a slightly more complex calculation that allows each vertex to
have a different value of "index" (suggested by Chad Versace
<chad.versace@linux.intel.com>).
gs: Test corner case for triangle strip ordering with primitive restart.

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

TODO:
- Make this work.
!UPSTREAM: Fix core-inputs test.

TODO:
- Write a commit message
- Possibly combine with Nick's "Change the geometry shader output layouts from 'triangles' to 'triangle_strip' because 'triangles' should be invalid"