Adjustments > Levels: add support for per-channel levels

Uuuugh, changes like this are a headache.  When a dialog doesn't have a
1:1 correlation between on-screen controls and affected data, a lot of
custom handling is required to make sure presets and last-used settings
behavior persists properly.  This Levels tool is particularly messy
because the text up/down limits are codependent, because the input
shadow level cannot exceed the input highlight level (and vice-versa).

I think I've sorted everything out, but it's always hard to know until a
few days have passed and the dust has settled...