Fill in the rest of WebGL 2 query spec and fix small errors

For Issue #544.
Merge pull request #659 from NVIDIA/query-spec

Fill in the rest of WebGL 2 query spec and fix small errors
Test that setting line width to NaN is not an error

This exposes an NVIDIA driver bug, where INVALID_VALUE is incorrectly
generated. glLineWidth should only produce an error when width <= 0,
which is false for width NaN.

Rendering with width NaN is undefined, so alternatively the spec could be
changed to disallow setting it, but this is unlikely to become a major
issue.
Merge pull request #660 from NVIDIA/line-width-nan

Test that setting line width to NaN is not an error
Partially revert "Test that setting line width to NaN is not an error"

This turned out to be not a driver bug after all, but within allowed
behavior. GL specs say that providing NaN or infinity to a function
accepting floating point data yields unspecified results (GLES3.0 2.1.1).
So actually, generating an error is allowed in this case.

Keep the part of the commit that fixed a comment in the test file.

This reverts commit cf16a1cae5179c76397e7bb6f56e6e91dd0cf650.
Merge pull request #661 from NVIDIA/line-width-nan-revert

Partially revert "Test that setting line width to NaN is not an error"
Specify an error for setting line width to NaN

OpenGL drivers are allowed to generate errors when NaN is supplied to
functions under GLES 3.1 section 2.3.3.1 or OpenGL 4.5 section 2.3.4.1.
Similar clauses exist in earlier versions of the specs as well. NVIDIA
OpenGL driver generates an error when NaN is supplied to glLineWidth.
Make this behavior consistent for WebGL, which removes the possibility of
drawing with an undefined line width.

Functions which supply data to shaders are not changed, as this would
have an undesirable performance cost and only a small benefit, since it
would not prevent shaders themselves to generate NaNs.
Merge pull request #662 from NVIDIA/line-width-spec

Specify an error for setting line width to NaN
Add missing short explanations buffer and framebuffer functions

Also fixes some small mistakes, such as slightly wrong spec section
numbers. The name of the parameter of ReadBuffer in the GLES spec is
"src", the man pages erroneously have "mode".
Merge pull request #663 from NVIDIA/webgl-buffer-spec

Add missing short explanations for buffer and framebuffer functions
Add unmasked vendor and renderer strings to WebGL info page
Add missing short explanations for sampler functions
Remove samplerParameter functions taking multiple values

There is no foreseeable need for these functions. They're not used in any
existing ES extensions, and even though texture swizzling is in the ES3.0
spec, it only supports setting the swizzle values one by one, and not
with a single call using TEXTURE_SWIZZLE_RGBA.

This is consistent with the removal of similar texParameter functions in
WebGL 1.0.
Merge pull request #664 from NVIDIA/unmasked-renderer

Add unmasked vendor and renderer strings to WebGL info page
Merge pull request #666 from NVIDIA/webgl2-sampler-spec

Add missing short explanations for sampler functions
Merge pull request #665 from NVIDIA/remove-samplerParameteriv

Remove samplerParameter functions taking multiple values
Improve context version handling in test harness

Harness now shows clearly if the selected version of WebGL is not
supported, and test links point to the test with the right WebGL version
selected, so results are consistent whether you run the test with the
button or follow the link.
Merge pull request #667 from NVIDIA/improved-context-version-handling

Improve context version handling in test harness
Added more logging to loadImagesAsync to diagnose intermittent test failures on Chromium project's GPU bots.
Merge pull request #668 from kenrussell/more-logging

Added more logging to loadImagesAsync to diagnose intermittent test fail...