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.