Revert "Revert "Revert "Send events to clients in the next iteration of the mainloop"""

This reverts commit d85b49782c302a502cb39328c1a710a2fa0ef045.

This is actually correct, but we're going to be moving to a
real psuedo-message passing model soon enough and get real
asynchronicity with postMessage.
Remove event filtering from sendEvent

The pendulum of choice swings back again. This will help us
implement proper implicit grab semantics.
Return that we sent an event in the case of grabs
Move serverWindow filtering to be immediate

We don't need this in the loop.
Move client finding code to its own function

To implement proper implicit grab semantics, we need to do this.
Implement proper implicit grab semantics

This will break window dragging, because it tries to take an
active pointer grab when there's already an implicit grab.
We'll fix that soon enough.
Allow overwriting a grab by the same client

I had a change of heart. This is required to overwrite cursors and so
on, and I think it makes things cleaner, rather than implementing
ChangeActivePointerGrab.
Remove an unused argument

Something leftover when introducing _grabPointer.
Stop the context menu

I'm going to start testing other click events. Right now our
grab semantics are broken on release for them, but oh well.
Move invalidateRegion to the extension place