Gas Giant split

# Description:
This splits the generation and rendering of Gas Giant bodies away from the GeoSphere and related classes.
I've started to do this so that they can properly diverge in terms of the shaders used, textures generated and the underlying geometry. 

Part of the motivation for this is to simplify each of the planetary generation and rendering systems to make it easy to customise them in the future.

NB: I may re-use this for Stars as well since they _really_ don't need the whole quad-tree LOD system.

# Future work:
This is less ambitious than what I was originally aiming for which was to generate all the textures on the GPU itself with render-to-texture, I have another branch where that work will continue.

Instead I'm using the job system to build each face of the gas giants cubemaps as a separate job, once they're all complete it builds a cubemap texture and allows the gas giant to be rendered.