fxPreview: do not apply cursor changes in the IDE

Thanks to @audioglider for reporting, sorry about the sloppy mistake.
pdInput: fix bad coordinates from MouseUp on delayed messages

Explanation in the comments; this fix is most helpful in the IDE, but
could also be relevant on low-end PCs when working with very large
images.
ExifTool: update version number in PD's plugin manager

I always forget to do this...
jcButton: fix nasty SendKeys bug

I can't believe this control uses SendKeys to handle arrow key
forwarding.  More and more it becomes obvious that I need to replace it
with my own button control... <sigh>...
vbAccelerator HookControl: fix hook return code

I probably broke this when I rolled the control over to IDE-safe
subclassing; my bad.
pdLayer: validate incoming opacity changes
pdInput: new custom handler for arrow keys

Good grief, this was a headache-and-a-half, but extremely important for
usability.

One of the things I really want to work on in PD is improved
interactivity with the keyboard.  Right now, keyboard interactions are
pretty barebones, limited to a few accelerators and ESC to cancel
running effects.

In a perfect world, many more tools, dialogs, and other features would
make use of at least basic keyboard interactions (e.g. the arrow keys on
all of PD's custom list UCs).

The problem with handling something like arrow keys is that any number
of parent windows/hooks/handlers can eat the keypresses before they ever
reach your window.  VB in particular is terrible for arbitrarily eating
certain keypresses (see my past fights with tracking the Enter key on
PD's command bar).  Arrow keys compound this further because in a wide
variety of circumstances, we actually *want* the system to handle these
keypresses, e.g. to move focus between command buttons (sometimes) or
move the cursor around in a text box.

The complexities involved have made me very leery to start integrating
arrow support, as each dialog would need a ton of custom handling to
allow customized arrow actions without breaking valuable system default
ones.

But no more!  pdInput now provides a dedicated arrow key handler, which
can be invoked on-demand for any object with an hWnd.  As a first test,
I have utilized it by the layer toolbox.  When the layer box has focus,
arrow keys up/down will now change the active layer, while left/right
will modify the active layer's opacity.  Best part?  Only a tiny bit of
code is required in the toolbox itself.

This seems like a trivial feature, but from the size of this pdInput
update (and the hundreds of faulty implementations not included!) the
backend is more complicated than it appears.  The comments of the
requestArrowKeyTracking() function describe this in more detail, but
basically pdInput will now provide dynamic hooking for controls based on
their focus state.  This allows the system to handle arrow keypresses
for everything except items we explicitly overwrite.  In the case of the
layer toolbox, this allows arrow keys to still work just fine on
something like the opacity text box, despite other controls *on the same
window* hooking the arrow keys in custom ways.

Going forward, I'm going to be providing key event "bundles" like the
new KeyDownArrows() function.  The goal is to provide simple keyboard
bundles that individual UI elements can use as they wish, without
needing to implement a lot of custom code or do complicated keystate
checking.  (For example, the KeyDownArrows function passes all arrow
states as Boolean values, and it automatically factors in NumPad usage
as relevant.  Regular functions can then simply use code like "If
upArrow Then...")
Layer toolbox: support arrow keys for layer changing and opacity

Up/down to change active layer, right/left to change layer opacity (in
increments of 10).
pdInput: handle WM_SETCURSOR message if responsible for cursor duties
Processor: minimize use of the busy cursor

It will now only appear if DIB data is being modified; this makes the
program feel more responsive during lightweight actions like moving
selections around or reordering layers.
pdCanvas: unify all validity checks into single isCanvasInteractionAllowed() function

Should have done this long ago...
pdInput: add special key hooking checks for UCs

pdInput's code comments explain this in detail.  In a nutshell, focus
handling for UCs is a nightmare in VB, so workarounds are required to do
it properly for PD's complicated canvas UC.
pdCanvas: add arrow key support to hand (pan) tool

Arrow key support for other tools forthcoming.
Paste: fix save state tracking for downloaded files
Window manager: auto-calculate main window size and placement relative to monitor dimensions

Only relevant the first time PD is run; after that, the last-used
location will obviously be used.

This indirectly fixes an issue on 1024x768 resolution where the bottom
elements of the tools toolbox would be hidden by the task bar.
pdInput: fix broken program-wide accelerators
Move tool: fix "auto-activate layer" behavior

Dumb mistake; only the POIs of the current layer should be checked,
instead of the layer as a whole.
pdCanvas: add arrow key support to layer move/size tool

Used for 1px nudging.
pdCanvas: add arrow key support to selections

Again, helpful for nudging by 1px increments
Add debugging checks for key hooking issues

See #133.

I've got some ideas for fixing this, but none of them are simple.  In
the meantime, this debug code will help me track the order of
problematic hooking operations.