Use the correct coordinates to copyArea

These need to be in absolute coordinates.
Remove hasInput

This isn't actually a real X server thing. Why did I think it was?
Implement correct semantics for EnterLeave

It turns out that I was recursive incorrectly for Leave events -
we need to send Leave events starting on the child going
upwards, and Enter events starting on the parent going downwards, so we
can't deduplicate this code here.
Remove Notify prefix from detail
Fix a comment
Move grab info to an object

This allows us to save grab infos for later for passive grabs.
Implement passive button grabs

This is used to raise the window on click without
selecting ButtonPress on client windows, which are
exclusive.
Implement sync grabs and allowEvents

This is used to replay the click event to the window.