Solid patch rendering now using VBOs

- VertexBuffer and IndexedVertexBuffer are now templated on their vertex class,
  rather than forcing the use of ArbitraryMeshVertex. The wireframe patch
  renderables use Vertex3f as their vertex type which should save some GPU
  memory.
- Introduced the VertexTraits templated class which provides access to the
  various offsets for each supported vertex type. Specialisations added for
  Vertex3f and ArbitraryMeshVertex; the VertexBuffer classes can use any vertex
  type for which a VertexTraits specialisation is defined.
- IndexedVertexBuffer sets vertex and attribute pointers based on the
  particular components provided by its vertex type, and an extra boolean
  parameter specifying whether to render in bump-map mode (with custom vertex
  attributes) or regular mode (with glNormalPointer and glTexCoordPointer).