More drawable classes, minor fixes

Unified the `LineType` and `PrimitiveType` for rendering since I hope to get all of these going through the `DrawBuffers` method eventually rather than having separate line drawing code.

Removed all of the base class definitions for virtual methods so that you must implement them in any derived class. This is fine for us now since we've always done this in the GL2 Renderer.

I've added a method to the `VertexBuffer` classes that copies a `VertexArray` into a `VertexBuffer` object to aid in porting code across to drawing using `VertexBuffers`.

Finally I actually added the new `Drawable` classes:
* `Lines` - a line comprised of many points not just start & end like `Line3D`.
* `PointSprites` - to replace the code that currently does this work.
* `Axes3D` - stand red-green-blue for x-y-z axis representation.

Also did two little fixes, `CityOnPlanet` can now use SGM files, some casts for `Colour4ub` constructor that were annoying me.

Andy