Test downsampling blits in GL_LINEAR filter mode.

Since downsampling blits require the source and destination rectangles
to be exactly the same size, GL_LINEAR and GL_NEAREST filtering should
be equivalent.  So just add an option to the "accuracy" test that
causes it to do a GL_LINEAR downsampling blit.

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Test upsampling blits in GL_LINEAR filter mode.

Since upsampling blits require the source and destination rectangles
to be exactly the same size, GL_LINEAR and GL_NEAREST filtering should
be equivalent.  So just add an option to the "upsample" test that
causes it to do a GL_LINEAR upsampling blit.

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Test MSAA-to-MSAA blits in GL_LINEAR filter mode.

Since MSAA-to-MSAA blits require the source and destination rectangles
to be exactly the same size, GL_LINEAR and GL_NEAREST filtering should
be equivalent.  So just add an option to the "multisample-blit" test
that causes it to do a GL_LINEAR blit.

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Check that transform feedback size/type comes from gs, not vs.

When the current program has both a geometry shader and a vertex
shader, transform feedback needs to link with the geometry shader.
This test verifies that the type and size of the varyings captured by
transform feedback match their declarations in the geometry shader,
even if there are vertex shader outputs with the same names and
different types.

The test exercises one built-in shader output (gl_ClipDistance) and
one user-defined shader output.
Test that the fs gl_PrimitiveID input works even when there's no gs.

For i965/gen7 hardware, the driver has to go to extra work to make
gl_PrimitiveID work in the case where there is no geometry shader.  So
we need a separate test to make sure that works properly.
Test interpolation qualifiers inside of interface blocks.

Validated using the NVIDIA proprietary driver for Linux (version
313.18).
Test the "centroid" qualifier inside of interface blocks.

Validated using the NVIDIA proprietary driver for Linux (version
313.18).
gs: Test that gl_MaxGeometryInputComponents can actually be achieved.
gs: Fix geometry layout case insensitivity tests.

These tests use check_link: true, which means that they each need to
specify a complete set of geometry shader layout qualifiers in order
to pass.
gs: Test redeclaring either gl_PerVertex in or out, and using both.
Test a corner case involving arrays, structs, and interface blocks.

This patch exercises the same corner case as
https://bugs.freedesktop.org/show_bug.cgi?id=70368.