Improve ProcessInputEventQueue() to be slightly more general.

Remove special case of always feeding topmost widget with all events.
Add appropriate Hit() to CanvasWidget.