pdTextBox: when activated via mouse, force redraw of previous VB object that had focus

If we don't do this, it appears that two objects on the form
simultaneously have focus.
pdTextBox: raise Change() event
pdTextBox: keep implementing features

- KeyPress event, with option to override default handling
- Select All wrapper
- Autosize control height when multiline is FALSE
pdTextBox: manually raise Change() event when setting text property
pdTextBox: add failsafe hook release strategy

Because I am (probably unwisely) raising events from directly inside the
hook proc, it is possible for the event handler to kill the control from
inside the event, which causes the control to fail to release its hook,
as it is inside the hook proc when the hook release conditions are
triggered (and you can't release a hook that's in the midst of
processing).

This odd state exists presently in PD's Layer toolbox, because pressing
Enter causes the text box to be hidden, which normally releases the hook
- but can't in this case, as the KeyPress event is still processing.

To avoid this odd scenario, a failed hook release will now set a timer.
That timer will repeatedly attempt to remove the hook, and terminate
itself once successful.
Layers toolbox: switch to Unicode text box

This allows for Unicode layer names - yay!  I still need to sort out
saving Unicode strings to PDI files, which isn't currently functional -
but this is a nice step closer.