Checked and Unchecked are called at weird, unpredictable times by WPF, and saving
settings when they happen causes us to change the setting incorrectly. OnClick is
only called when the user actually changes the value and not when internal WPF stuff
sets it, so it doesn't have this problem.
This is just a safeguard to prevent hammering the EEPROM erase cycles. It also
makes the platform slider update more smoothly (previously it would only update
at a few FPS since it was using config changes).
This also refactors the panel button code to rely less on WPF bindings.
They just get in the way for anything nontrivial. Doing it this way
lets us treat the panel buttons as an interface for setting colors, to
handle the different fields that are set for the panel colors and floor
color.
This fixes the default always being up-left (which is usually disabled),
causing the color slider to not do anything until you select a different
panel.