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


I wonder why _strides is not cleared in the dtor and initialized in the ctor just like _buffers and _offsets.  I tried to figure out what exactly a **Strides** class is, so I could know if it requires a clear or not, but could not find it in the code.  It is a mystery.