Added some flexibility to the input and output formats, and also allow arrays of colors without explicit stops (assuming an event spacing across the input range) to be defined.