Improve VAO extension test

This commit makes the following improvements to the VAO extension test:
-Adds testing switching between VAOs that have different number of arrays
enabled.
-Uses a color attribute instead of using a texture coordinate attribute
which is meaningless since a texture is not used.
-Refactors testing pixels to remove unnecessary indirection.
-Fixes typos and makes the test output more descriptive.
Restore VAO test pixel tolerance to 2

Tolerance was raised to 5 since the test is not testing just white and
black any more, but it's better to keep it as is unless an actual
tolerance problem can be demonstrated.
Add paragraph about buffer object binding in WebGL 2

There's more buffer binding points and functions that set buffer binding
points in WebGL 2. Restricting index buffers not being bound to other
binding points avoids possible security issues with generating indices
from transform feedback.
Merge pull request #628 from NVIDIA/vao-test-tweaks

Improve VAO extension test
Fix absolute links and add anchors for consistency in WebGL 2 spec
WebGL 2: Add querying of 64-bit values to getParameter etc.

GetInteger64v is subsumed into getParameter, GetInteger64i_v is subsumed
into getIndexedParameter, and GetBufferParameteri64v is subsumed into
getBufferParameter. This maintains the consistency of the API, at the
cost of losing the ability to precisely represent all possible 64-bit
return values. The 52-bit precision provided by ECMAScript numbers will
still enable processing individual buffers with exact size up to the
petabyte scale.

If full 64-bit precision of buffer sizes would be desired instead, the
whole API would need to be overhauled to properly support it, so that
sizes with 64-bit precision could be passed into the API as well as
queried from it.

In case the maximum size values returned by the native GL are not
exactly representable as ECMAScript numbers, it is suggested that the
WebGL implementation rounds them down to values that are, such as the
nearest lower power of two, or simply to 2^53.

This commit sets the type of all returned 64-bit values to signed GLint64
or GLsizeiptr to be consistent with native GL.

64-bit values TRANSFORM_FEEDBACK_BUFFER_OFFSET,
TRANSFORM_FEEDBACK_BUFFER_SIZE, UNIFORM_BUFFER_OFFSET, and
UNIFORM_BUFFER_SIZE are removed from the values returned by getParameter,
since they are only returned by the indexed get functions in GLES 3.0,
and so should only be returned by getIndexedParameter in WebGL.
Make WebGL 2 always have a default framebuffer

This is consistent with how context creation is specified.
Merge pull request #630 from NVIDIA/webgl2-buffer-object-binding

Add paragraph about buffer object binding in WebGL 2
Merge pull request #632 from NVIDIA/default-framebuffer-2

Make WebGL 2 always have a default framebuffer
Remove TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH from WebGL 2
Add getUniform return type table for WebGL 2
List remaining removed enums in WebGL 2 and fix enum name typo
Merge pull request #631 from NVIDIA/get-64bit-params

WebGL 2: Add querying of 64-bit values to getParameter etc.
Merge pull request #633 from NVIDIA/removed-enums

Remove TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH from WebGL 2
Merge pull request #634 from NVIDIA/getUniform-webgl2

Add getUniform return type table for WebGL 2
Fix lists of removed constants in tests

In WebGL 1, add ACTIVE_ATTRIBUTE_MAX_LENGTH with the correct spelling. In
WebGL 2, bring the test up to date with newly updated spec.
Disallow invalid clears in WebGL 2

This improves cross-platform compatibility and testability of the API by
eliminating undefined behavior.

Another option would be to define the conversions performed when the
types mismatch, but this would increase WebGL/GLES3 incompatibility
compared to this option.
Merge pull request #635 from NVIDIA/string-length-enum-test-fix

Fix lists of removed constants in tests
Merge pull request #636 from NVIDIA/webgl2-clear-spec

Disallow invalid clears in WebGL 2
Add minimal explanation for draw entry points

Includes error conditions for drawRangeElements, specifying it to behave
similarly to drawElements, and a note about vertex attrib divisor
affecting draw calls inherited from WebGL 1.0.

For Issue #544.