Created inherited objects for planet types

Broke out planet types into sub-objects so that functionality like texture generation could be more localized and specialized to each planet type. Added desert and ocean planet types. Renamed "ice giant" type to "ice", and "gas giant" to "fluid" to be more in-line with modern terminology. Improved randomColor to operate with THREE.Color objects, and handle gradient ranges natively. Also added range handling to Math.randomFloat().