Mixed array vs. non-array structs

Verifies that mixed (array vs. not array) struct declarators work correctly.

Shaders are of the form:
precision mediump float;
void main() {
    struct S {
        $(type) field;
    };
    S s1[2], s2;
    $(var).field = $(initializer);
    gl_FragColor = $(asVec4);
}

$(var) is replaced with s1[0], s1[1], and s2.