OpenGL 3.x update

# Description:
Updating the OpenGL renderer to require & use OpenGL version 3.x plus newer GLSL syntax requiring us to build our own matrices, use shader attributes and remove deprecated functionality.

# Work-In-Progress:
I haven't even decided whether to go straight to 3.3 (GLSL 330) or stick at 3.2 / 3.1 (GLSL 150). That decision will come down to how well everything runs across all 3 OS's that we support. Getting them all to work and give me the correct context has proven to be horribly fragile and convoluted at times.

# Bugs / Notes:
There are probably many more but these I know of:
* `FresnelSphere` - the hyperjump sphere renders opaque in the `SectorView` screen.
* `glLineWidth` - is deprecated and causes runtime errors, needs a new line shader writing.
* ModelViewer - untested.

Posting so people can get a heads up of what's coming, ask questions etc.

Andy