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


yes - and possibly DRY up some of the other stuff.

looks like the pattern takes 5 parameters

```
if (mesh.XXXX.size()) networkMesh._vertexFormat->setAttribute(gpu::Stream::YYYY, channelNum++, gpu::Element(gpu::ZZZZ, gpu:WWWW, gpu::QQQQ), 0);
```

Not a big deal one way or the other... just might make it easier to read.