shader_runner: Add support for layered framebuffer

This allows attaching an entire 2darray texture as a layered
framebuffer.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
shader_runner: Support creating uninitialized 2d array textures

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
arb_fragment_layer_viewport: Add tests for not-written cases

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
arb_fragment_layer_viewport: Add tests for FS reading correct values

This covers both in-range and out-of-range cases.
Note that we don't care what actually gets rendered -- we assume that
layered rendering and multiple viewports are verified in other tests.

The out-of-range cases are a little fiddly: the effect on the
framebuffer is undefined if gl_Layer or gl_ViewportIndex is out of
range; we may or may not actually produce any FS invocations, but if we
do, the FS must see the bogus value the previous stage wrote. This is
currently mishandled by i965.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>