Compute - add base compute classes
Compute - add a test program
Compute - add Device::getMaxComputeUnits
Compute - Improve NDRangeCommand

* Add a way to set the kernel's arguments
* Send global offset and local arrays to the command only if set
Compute - fluent programming for Program::build
Compute - update test program
Compute - add OpenGL interop in Context creation
Renderer - add getDataCount and const-correctness to Buffer
Compute: changes for OpenGL interoperability

* Log OpenCL errors
* Introduce a temporary gl.hpp that holds OpenGL-specific code
* Allow buffers to be created from OpenGL buffers
Compute - Add acquire and release commands for GL buffers
Renderer - Add support for Buffer Textures
Renderer - ShaderPrograms now correctly retrieve the info log
Renderer - Use forward declarations
Renderer - Use forward declarations
Renderer - use glProgramUniform instead of glUniform
Renderer - add basic support for image uniforms
Renderer - add texture targets for buffer texture
Renderer - fix the allocation of texture units
Renderer - Ignore unused uniforms
Renderer - do not treat images like we treat uniforms