For discussion - optimisations.

# Why:
This came about after I did a profile but honestly the difference is small. 
However having done it the change just made some sense. 

We're asking for the colour, but we're getting a `vector3d`? A 32 `byte` chunk of 4 * `double` data type which we then have to manually convert into the `Color3ub` or `Color4ub` data we want it to be in.

So I guess this is mostly a style change rather than a functional one. At least, it should be.
If someone can try it out on Linux and report any irregularities or rendering problems then that would be great, thankyou.

Andy