vxfw: improve mouse handling and hit testing
Modify the handling and hit testing:
- Only widgets which have event handlers or capture handlers are
considered for the hit list
- The topmost widget is always the target. We used to consider the last
widget which handled the mouse as the target. Now we consider the
topmost the target. This lets us generate an explicit mouse_enter
event since we can determine this before sending events
- Modify relevant widgets to remove noopEventHandler and remove this
function entirely
- mouse_enter and mouse_leave events are based on how browsers determine
these events. Any widget hit this frame that was not hit last frame
gets a mouse_enter. Any widget which was hit last_frame but not this
frame gets a mouse_leave.