Added variable height gradient range

Added public variables startGradientHeight and heightGradientRange to define where the gradient color range starts and what the range covers.
Changed heightGradient to include the 2 colors below 0 height but this resultst in an extra lerp from Cerulean to armygreen that i cant easily avoid :(.
Updated getLegend function so that it keeps track of the changing color range and uses the cache correctly.