This change is to help alleviate some object creation and ease the pressure on the GC. When a element has nothing going on it has no state. Instead of creating a new empty state object every time, let's use a static one across all the elements that doesn't have to be created every time and can be shared. This eliminates the new object overhead and then the subsequent GC collect an interval or two later when it is thrown away.

The same principal is done in the Color breakdown.
Manual merge/cherrypick of James Bolding's work (SHA-1: 137c05968c955c5248e83126efba28554a88d248).

* This work is for VIX-467 & VIX-320

VIX-467:
Adds a Tool Palette as a docking form, which allows you to
customize a set of your favorite colors, which you can then
drag & drop to effects.

This palette also has tabs for Curves, Color Gradients, and Effects.

For the sake of keeping the controls clean, it is limited to only
docking at Top / Bottom, or being a floating panel.

VIX-320:
Changes to the multi effect editor that only changes values for target
effects which were actually changed in the editor.
Merge remote-tracking branch 'remotes/jeffu231/Bugfix'