moved EXT_disjoint_timer_query out of proposals
moved EXT_disjoint_timer_query to draft
Add texSubImage2D test to oes-texture-float test

This tests for a recent Chromium bug where the behind-the-scenes
internalformat might change if texSubImage2D replaces an entire floating
point texture, affecting renderability.
Also test for texSubImage2D changing part of a float texture
bumped the extension number of EXT_disjoint_timer_query to 26
Merge pull request #476 from pyalot/EXT_disjoint_timer_query

Proposal to move EXT_disjoint_timer_query to draft
Merge pull request #477 from NVIDIA/texsubimagefloat-test

Add texSubImage2D test to oes-texture-float test
Test sampler array using loop index in a separate test.

In WebGL 2, sampler array using loop index is not allowed anyway, and this is a very specific driver bug, so I put a new test under glsl/bugs, with added "break" code to test loop unrolling if it is applied.
Fix a bug
Add a comment and fix a bug.
Merge pull request #480 from zhenyao/loop

Loop
Test struct type matching for uniforms.
Merge pull request #482 from zhenyao/match

Test struct type matching for uniforms.
Strengthen the test case for loop-unrolling.

So the index might not just be a symbol, but could be expression.
Also, see if the index used as function param also get replaced with value while unrolling.

This is added due to bugs in the attempted implementation.
Merge pull request #483 from zhenyao/loop

Strengthen the test case for loop-unrolling.
Updated IDLs with correct 'implements' syntax
Merge pull request #486 from toji/idl_update

Updated IDLs with correct 'implements' syntax
Correct singularity handling in J3DIMath matrix rotation decomposition

The old formula for handling the case where cos(rotate[1]) == 0 was
incorrect. This could cause flickering in the demo animation as it
calculated the rotation angles wrong when this singularity was
encountered. Implement the correct formulas solved from the equation
group:

row1[0] = sin(a)sin(b)cos(c) + cos(a)sin(c)
row1[1] = -sin(a)sin(b)sin(c) + cos(a)cos(c)
row2[0] = -cos(a)sin(b)cos(c) + sin(a)sin(c)
row2[1] = cos(a)sin(b)sin(c) + sin(a)cos(c)

where a = rotate[0], b = rotate[1], and c = rotate[2].

The bug reproduces in Chrome. It does not reproduce in Firefox due to
slightly different approximations for trigonometric functions, which
helps it avoid the singularity. These differences in approximations are
allowed by the ECMAScript spec.
Fix to adhere to the row/column confusion in J3DIMath

In J3DIMatrix, $matrix.mxy is actually the matrix value in the xth column
and yth row. WebKitCSSMatrix, which J3DIMatrix is based on, has incorrect
documentation about this. J3DIMatrix documentation in about row/column
majorness might be wrong as well, but this patch only attempts to fix the
matrix decomposition.
Fix remaining incorrect math in rotation decomposition

The cos(rotate[1]) != 0 code path in rotation decomposition used to work
only for a special case of the rotation. Fix it so that it should work
with arbitrary rotation.

The fix is demonstrated in MatrixTest.html. The first cube and the cube
with the decomposed rotation should rotate roughly the same way.