Fix shader issues in WebGL 2 tests and add new shader tests

The new shader tests test that #version directive must be on the first
line and that linking shaders written in different versions of ESSL is
not allowed.

Draw buffers test is edited to not mix shaders with different ESSL
versions, have the #version directives on the right line, not to use
undefined built-ins, and to test writing to a single output color and
mis-matched attachment sizes according to the spec. Some other
miscellaneous errors are also fixed.

Frag depth test is edited to not mix shaders with different ESSL
versions, have the #version directives on the right line, and not to use
undefined built-ins. A test case is added to confirm that gl_FragDepthEXT
with the EXT suffix is not allowed.