!UPSTREAM: Prohibit illegal mixing of redeclarations inside/outside gl_PerVertex.

From section 7.1 (Built-In Language Variables) of the GLSL 4.10
spec:

    Also, if a built-in interface block is redeclared, no member of
    the built-in declaration can be redeclared outside the block
    redeclaration.

We have been regarding this text as a clarification to the behaviour
established for gl_PerVertex by GLSL 1.50, so we apply it regardless
of GLSL version.

This patch enforces a stricter rule: no built-in shader input or
output may be redeclared more than once.

It does so by adding a boolean to ir_variable to track whether the
variable is an implicitly-defined builtin.  For built-ins, this
boolean starts out as true.  When a built-in is redeclared, we set it
to false.  If the built-in is redeclared again, we notice that the
boolean is false and generate a compile error.

Fixes piglit tests:
- gs-redeclares-pervertex-out-after-global-redeclaration.geom
- vs-redeclares-pervertex-out-after-global-redeclaration.vert
- gs-redeclares-pervertex-out-after-other-global-redeclaration.geom
- vs-redeclares-pervertex-out-after-other-global-redeclaration.vert
- gs-redeclares-pervertex-out-before-global-redeclaration
- vs-redeclares-pervertex-out-before-global-redeclaration

Regresses piglit tests:
- glslparsertest/CorrectUnsizedArray.frag
- spec/glsl-1.50/compiler/layout-any-order-ids.frag

For reference, these tests pass using the Nvidia proprietary driver
for Linux (version 313.18):
- gs-redeclares-pervertex-out-before-global-redeclaration
- vs-redeclares-pervertex-out-before-global-redeclaration
- glslparsertest/CorrectUnsizedArray.frag

And these tests fail:
- gs-redeclares-pervertex-out-after-global-redeclaration.geom
- vs-redeclares-pervertex-out-after-global-redeclaration.vert
- gs-redeclares-pervertex-out-after-other-global-redeclaration.geom
- vs-redeclares-pervertex-out-after-other-global-redeclaration.vert
- spec/glsl-1.50/compiler/layout-any-order-ids.frag
Revert "!UPSTREAM: Prohibit illegal mixing of redeclarations inside/outside gl_PerVertex."

This reverts commit b09c94845d53fb0106f3120f5e77fbdafd878be5.