Use a plain exception rather than CalledProcessError

Because of http://bugs.python.org/issue9400, unpickling of exceptions with
required arguments doesn't work. This includes CalledProcessError and
means nonzero exit codes are masked by an opaque error message about
arguments to __init__ and the test doesn't abort as it should.
Merge pull request #2944 from aidanhs/aphs-remove-calledprocesserror

Use a plain exception rather than CalledProcessError
Implement GLES3 Query objects.
Address handling of invalid id in glBindTransformFeedback.
Merge pull request #2956 from djg/webgl2-transformfeedbacks

Fixes for GLES3 TransformFeedback
Merge pull request #2955 from djg/webgl2-queries

Implement GLES3 Query objects.
Fix null pointer reads and writes in glGetUniformIndices(). Fix cases where GL layer might throw a JS exception if a GL call fails. Fix null pointer writes if zero is passed as an out pointer in multiple glGet*() calls.
Perform null pointer checks of WebGL glGet*() entry points only if GL_ASSERTIONS=1. In release builds do a random thing (most likely does nothing, since writing to address 0 in the Emscripten HEAP will not crash).