Introduce the input stream stage to the gpu::Batch and apply it for model rendering

- Add the setIndexBuffer, setInputFormat and setInputBuffer to the gpu::Batch allowing to configure the input stage of the Context. These provide all the necessary indexBuffer, inputBuffers(think vertex buffers) and their attribute binding to the vertex shader.
- Introduce in gpu::Stream.h the Stream::Format that describes the format for each attributes of the vertex and the binding to the input buffers.
- Introduce in gpu::Format.h several useful enums to describe scalar and element formats
- Introduce the BufferStream which is a container of buffers and their respective offsets and strides to be used as input buffers for the gpu::Batch.
- Replace the Model::render code path using glCalls by the new gpu api.
- Replace the QGLBufferOBject by the gpu::Buffer in the NetworkMesh used in the Model class


in this instance i would rather not hide things in macro but instead try to make it more readable by default. that's was really my goal with the naming here:
Eventually i could avoid the "gpu::" repetition all over the place
if we feel it's too verbose to do that "setAttribute" and "addBuffer" call then i could try to expose it differently.
any thoughts ?