Initial work on Chase to allow filling from the start or the end to chase all on or chase all off.
Fix a few bugs. One that would try to extend an empty pulse. Near the end of a chase in discrete colors may not have a value as they ramp to nothing. Detect that and avoid it. Also in discrete colors the curve points can be overwritten for each color causing invalid results. Make sure we start with a fresh curve each time. This was an existing bug and not related to the extended chase. Including with this work.
Fix a few bugs that could cause a null reference exception. Simplify the extended pulse logic. Fix a bug with the starting pulse not working correctly due to using the end value instead of the start value for the intensity curve.
Merge remote-tracking branch 'remotes/jeffu231/ExtendedChase'