Added "CustomExpression" node

Allows the user to enter in a GLSL expression instead of connecting
together long chains of simple nodes.
Fixing smallish bugs in various DataNodes

-Checking for null when getting geometry shader data

-Adding CustomExpressionNode to "DataNodeIncludes.h"
Added MAD operation to Combine3Noise2D/3D

Also refactored out the actual combine noise functions into their own
class
Added fog and better coloring to PlanetSimWorld