wayland: sync the keymap from X to wayland

When X clients change the keyboard map, the also update a property
on the root window. We can notice that and rebuild our data structures
with the new values, as well as inform the wayland clients.

This is a terrible hack, and it's not how we want to implement things
in 3.12, but it's enough to have the same keyboard layout in the
shell, in X clients and in wayland clients in 3.10, until we decide
on the fate of the keyboard g-s-d plugin.

https://bugzilla.gnome.org/show_bug.cgi?id=707446
display: Rename meta_display_handle_event to meta_display_handle_xevent

The plan is to make a new version of meta_display_handle_event that
will accept Clutter events instead of X events and then gradually move
over the events to the new function and finally remove the X version.
display: Add a quick out path to handle_xevent

This makes the code flow more like the scheme we usually use, and allows
us to flatten out the method somewhat.
display: Move barrier event processing to barrier.c

This puts all the code that's easily ported to Clutter events in one giant
switch statement, as Clutter doesn't translate barrier events.
display: Rename filter_out_event to bypass_gtk

This clarifies the intent of the variable and makes it match bypass_compositor
display: Split out input event handling

This helps with git's diff code by moving all the giant indentation
changes, letting us know what's going on better when we move to
Clutter for event handling.
display: Split out other event handling as well

This vastly simplifies the code in event_callback and allows us to potentially
take more of this logic and punt it to Wayland-specific backends.
display: Move the pointer event handling code to work in terms of Clutter events

There is now a meta_display_handle_event alongside the
meta_display_handle_xevent function which handles events in terms of
Clutter events instead of X events. A Clutter event filter is
registered so that all Clutter events will pass through this function.
The pointer event handling code from the X event version has been moved
into this new function and has been modified to use the details from
the Clutter event instead of the X event. This is a step towards
moving all of the event handling code over to use Clutter events.

Based-heavily-on-a-patch-by: Neil Roberts <neil@linux.intel.com>
wayland: Use an event filter instead of the captured event signal

In order to see all Clutter events, Mutter was previously installing a
signal handler on the ‘captured-event’ signal on the stage and
additionally using a signal emission hook to cope with grabs. This
changes it to use the new clutter_event_add_filter API so that we can
avoid the signal emission hook hack.
keybindings: Port to Clutter
wayland: Drop old hack to synthesize motion events

mutter now uses Clutter events for the source of its drag support, so
we don't need to synthesize X11 events anymore.
wayland: Drop focus on click

The native raise-on-click works with Wayland clients through the standard
Grand Central Station event handling, with MetaWindow.
wayland: Drop raise on click too

We'll handle this through GCD as well.
wayland: Move cursor tracker handling code to meta_wayland_seat_handle_event
display: Invoke Wayland from the Grand Central Station callback
display: Use MetaWindow for auto-raise callbacks

This allows us to autoraise Wayland windows... well, except for the
XQueryPointer, but we'll replace that soon.
wayland: Support alternative focus modes like focus-follows-mouse

Use the existing code for MetaWindow focus-follows-mouse to support this.