pdTextBox: fix control keys (arrows, etc), further IME improvements

To my knowledge, most existing VB Unicode textboxes rely on an
IOLEInPlaceActiveObject hack to allow control keys to work.  (This also
has other nice benefits, like allowing VB's normal Validate and Focus
events to fire.)

Because I have managed to get away with requiring a TLB so far, I'm
trying to avoid using one now, so I've instead opted for dynamic
keyboard hooking to handle control keypresses.  So far, this seems to be
working well.

By my testing, this version of pdTextBox works well with IMEs (tested on
multiple East Asian languages, using the built-in IME pad and OSK on
Windows 7).  Alt+ keycodes are also now supported.

One extremely nasty problem left to solve is dead keys.  I have spent
hours testing various solutions, but so far, no luck.  The closest I've
come is using some hooking tricks to insert them into the keyboard
chain, but this breaks IMEs, so not exactly a worthwhile trade-off.
(Ugh.)

I am certainly not the first to have this problem
(http://stackoverflow.com/questions/1964614/toascii-tounicode-in-a-keyboard-hook-destroys-dead-keys)
so hopefully I will eventually stumble onto a workable solution.