Fix broken tests:

* Remove "readonly" keyword from SSBO declarations in shaders. The "readonly" keyword is part of GLSL 420 and GL_ARB_image_load_store. When the shader version was dropped from #version 420 to #version 410 for the attempted Mac port, this keyword became unsupported. GL_ARB_shader_storage_buffer_object allows the "readonly" keyword (along with several others) to be used on SSBOs, but it is written against GLSL 420 and does not explicitly re-introduce these keywords on earlier versions of GLSL. A sufficiently smart shader compiler should see that the buffer is only ever read from and optimize accordingly anyway.

* In the bindless tests, do not pass NVIDIA-specific enums to EnableClientState or DisableClientState during shutdown when the corresponding extension is not present. Prior to this change, should the test fail to initialize due to the extension being missing, shutdown would still be executed and this would leave errors dangling.
Fix bindless texture shader.

Bindless textures declared as uniforms in the default block must use the "layout (bindless_sampler)" qualifier. Failure to do so causes them to be considered "bound" textures, and will produce errors if an attempt to use glUniformHandle* to set them is made.

Correct GL implementations should generate this error. Only incorrect implementations of GL_ARB_bindless_texture would allow glUniformHandle on a sampler declared without the bindless layout qualifier.
Make core profile work.

Although the test framework supports creation of a core profile context, it nevertheless attempts to execute code requiring legacy features only present in the compatibility profile. These fall into two main categories:

* None of the tests use a vertex array object. For the most part, I've fixed this by just creating and binding a VAO and then leaving it bound for the lifetime of the test. This is not the intended use case and indeed, the tests could be optimized by hoisting vertex definition into the initialization procedure and then only binding the VAO before the draw. That is not the point of these tests though.

* Some of the tests use client data directly. These are some of the MDI tests attempt to use MultiDraw*Indirect sourcing data from client memory, which defeats the point of the API and is illegal in core profiles. Rather than fix the test, I added a flag to IsOpenGL to indicate whether a compatibility profile is needed and modified the test to require a compatibility profile to run. I will add a fixed version of the test that uses a buffer for indirect draws in a follow-on change.
Limit batch count in UntexturedObjectsGLBufferRange test.

Previous implementation was querying the maximum size of a UBO and then attempting to make a system memory allocation of that size. An implementation could theoretically support up to a 4GiB UBO. Such an allocation attempt would obviously fail on a 32-bit system. Implicitly limit the size of the attempted allocation by clamping the batch size to the minimum of the object count (i.e., one big batch), or 64^3, whichever is smaller.
Merge branch 'master' of https://github.com/grahamsellers/apitest into grahamsellers-master

Conflicts:
	src/solutions/dynamicstreaming/gl/buffersubdata.cpp
	src/solutions/dynamicstreaming/gl/mappersistent.cpp
	src/solutions/dynamicstreaming/gl/mapunsynchronized.cpp
	src/solutions/texturedquads/gl/bindless.cpp
	src/solutions/texturedquads/gl/naiveuniform.cpp
	src/solutions/texturedquads/gl/notexuniform.cpp
	src/solutions/texturedquads/gl/sparsebindlesstexturearray.cpp
	src/solutions/texturedquads/gl/texturearrayuniform.cpp
	src/solutions/untexturedobjects/gl/bufferrange.cpp
	src/solutions/untexturedobjects/gl/dynamicbuffer.cpp
	src/solutions/untexturedobjects/gl/texcoord.cpp
	src/solutions/untexturedobjects/gl/uniform.cpp
Merge branch 'grahamsellers-master'