display: Simplify checks to see if a window is the root window
display: Return TRUE when we've handled an X event appropriately

We need to do this to make sure events aren't improperly sent
to Clutter in the next commit.
display: Don't grab the window actor's key focus

This breaks gnome-shell's actor tracking code.
display: Always use the key focused window for key events

We no longer grab the actor's key focus, so this is necessary.
keybindings: fix per window keybindings

We must spoof events to clutter even if they are associated
with a MetaWindow, because keyboard events are always associated
with one (the focus window), and we must process keybindings
for window togheter with the global ones if they include Super,
because we're not going to see them again.
compositor: fix mouse interactions on frames

meta_ui_window_is_widget() returns FALSE for frame windows, so we
must filter those explicitly (by letting the event go to gtk
and from there to MetaFrames). Also, for proper gtk widgets
(window menus) we want to let gtk see all events, including
keyboard, otherwise we break keynav in the window menu.
This means that having a window menu open disables keybindings
(because the event doesn't run through clutter)
MetaSurfaceActor: add a generic hook to retrieve the MetaWindow

This way we can find the window for a ClutterEvent even when
running as an x11 compositor.
display: move more event handling to clutter

Mouse event handling was duplicated, resulting in weird interactions
if clutter was allowed to see certain events (for example under
wayland, where it gets all events). Because now clutter sees all
X events, even when running as an x11 compositor, we can handle
everything using the clutter variants.
At the same time, rewrite a little the passive button grab code,
to make it clear what is being matched on what and why.
compositor: don't spoof events when running as a wayland compositor

Weirdly, clutter stopped segfaulting when we call clutter_x11 methods
and the backend is not right, but this is correct anyway, and
probably fixes some BadDrawable errors in mutter-wayland on x11,
caused by mixing windows of the outer X and windows of Xwayland.
compositor: always redirect passive button grabs to clutter

All WM events (passive button grabs and passive keyboard grabs)
are handled through clutter now, so we must make sure we spoof
them even if they happen on frames (because that's where we
grab on)