Test for va_arg support on struct types (disabled on nested struct)

va_arg is not yet supported on nested struct types (see
https://code.google.com/p/nativeclient/issues/detail?id=3815)
Fixed emscripten::val handle for special js values (undefined,null,true,false)
val::equals, val::strictlyEquals
fix up test_require
experimental option to emit JSON in EMCC_DEBUG=2 interim phases
simplify initial prettify phase in EMCC_DEBUG=2
REMOVE use JSON in EMCC_DEBUG=2, and time results
add rapidjson
Merge pull request #2923 from ericrannaud/incoming

Test for va_arg support on struct types (disabled on nested struct)
FS tests should not accumulate FS defines
Implement GLES3 functions:

* glGetActiveUniformBlockName
* glGetActiveUniformBlockiv
* glGetIntegeri_v
* glGetUniformBlockIndex
* glGetUniformIndices
* glUniformBlockBinding
Implement GLES3 Transform Feedbacks.
Make sure zero length reads work in NODEFS

Fixes #2266
Empty ungotten chars for all filesystems when llseeking
Perform fgetc/ungetc test on both MEMFS and NODEFS
compiling early version of optimizer.cpp
fix other.test_require
sdl_image version 3
Merge pull request #2939 from aidanhs/aphs-test-only-one-fs

Make tests of different filesystems actually test the different filesystems
Merge pull request #2942 from djg/webgl2-transformfeedbacks

Implement GLES3 Transform Feedbacks