mesa: Fix querying location of nth element of an array variable

This patch changes the behavior of glGetAttribLocation(),
glGetFragDataLocation() and glGetFragDataIndex() functions.

Code changes handle the cases described in following example:
vertex shader:
layout(location = 1)in vec4[4] a;
void main()
{
}

fragment shader:
layout (location = 1) out vec4[4] c;
void main()
{
}

Currently glGetAttribLocation("a") and glGetFragDataLocation("c") returns
1. glGetAttribLocation("a[i]") and glGetFragDataLocation("c[i]"), where
i = {0, 1, 2, 3}, returns -1. But expected locations for array indices
are: 1, 2, 3 and 4 respectively.

OpenGL spec doesn't say anything specific about getting the location
of an array element. But it looks sensible to allow such query.

Fixes failures in Khronos OpenGL CTS tests:
explicit_attrib_location_room
draw_instanced_max_vertex_attribs

Proprietary linux drivers of AMD and NVIDIA matches current output on
Mesa (i.e. returns -1).

Cc: <mesa-stable@lists.freedesktop.org>
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
mesa: Fix error condition for multisample proxy texture targets

Fixes failures in Khronos OpenGL CTS test proxy_textures_invalid_samples

Cc: <mesa-stable@lists.freedesktop.org>
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
i965: Add glBlitFramebuffer to commands affected by conditional rendering

Fixes failures in Khronos OpenGL CTS test conditional_render_test9

Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>