Quick-Fix Tools: add Temperature and Tint correction

This completes the "Lighting" quick fix section, I think.  Temperature
is implemented differently from its menu-based option (and Tint has no
menu-based option... which I should probably remedy).  Changes to the
algorithm were necessary to improve performance, since time is at an
absolute premium here.  Thus, the quick-fix adjustment will not look as
nice as the menu-based one, but that's a trade-off I'm okay with.

Also in this commit are some minor UI adjustments, such as dynamically
en/disabling the quick-fix Reset and Make Permanent buttons depending on
the state of the associated sliders.
Processor: fix checkpoint bug when multiple images with unique checkpoints are active
pdCompositor: more performance optimizations

Because PD has to manually handle a ton of the rendering pipeline (blend
modes, non-destructive resizing, non-destructive effects), the goal has
always been to minimize the number of pixels processed at any stage in
the pipeline.

This commit extends that philosophy to zoomed-in mode, by reversing the
order that rect extraction and non-destructive FX are applied.

When zoomed-out (which I consider the "normal" mode, given photo sizes
vs monitor resolutions), we first resize and crop each layer to match
their viewport representations, then apply non-destructive FX.  This
results in fewer pixels requiring the expensive non-destructive FX
calculations.

When zoomed-in, the opposite is true: there are less pixels in the
original rect than the viewport rect.  The compositor now detects this,
and extracts a custom source rect for non-destructive FX processing.
Once that's complete, resizing for the viewport continues as normal.

I've also added custom checks for identifying non-destructive resizing
on a layer AND the viewport being zoomed-in; in this (rare) case, GDI+
should still be used instead of StretchBlt, to avoid visual artifacts.