framework/shader_test.py: simplify ShaderTest

This patch almost completely reworks ShaderTest. It was originally much
more complicated than was necessary, this code should be much easier to
work with, and removes some quirks. One of those was that ShaderTest
inherited from PlainExecTest, but used ExecTest's __init__ method, which
has implications for changing either of those classes.

v2: - remove shader_test_tests. This only had an initializer test, and
      that no longer applies since ShaderTest is now a function
v3: - Don't remove shader_test_tests
    - Keep ShaderTest as a class rather than function
    - make looping over test files more efficient
    - make errors more specific
    - make tests more precise

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
Adds some tests for glsl_parser_tests.py

These tests model future behavior rather than current behavior, some of
them pass, others fail.

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
glsl_parser_test.py: Remove standalone functionality.

This removes the standalone run functionality from glsl_parser_test.
Like shader_test this was probably useful for testing while in
development, but at this point it's just dead code.

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>
glsl_parser_test.py: Simplify GLSLParserTest

This vastly simplifies the way that GLSLParserTest works. This
simplification has a couple of advantages. First, we call
PlainExecTest's __init__ rather than ExecTest's __init__, which is good
OO practice.

Signed-off-by: Dylan Baker <baker.dylan.c@gmail.com>