wayland-keyboard: Make update_pressed_keys() more generic

It will allow us to re-use this function next. Also rename the keys
array to pressed_keys since we'll need to add a different one.

https://bugzilla.gnome.org/show_bug.cgi?id=727178
wayland-keyboard: Send keymap events also to focused resources

We move focused resources out of the global list when we focus a
client's surface so we need to send events for those separately.
wayland-keyboard: Send modifiers after the keymap

Clients have to re-create their modifier state when getting a new
keymap so modifiers have to be sent after the keymap, not before.
wayland: Use wl_display_add_socket_auto
wayland: Use the send event wrappers

Rather than raw post_event.
Use libX11's Xkb* API unconditionally

At this point there shouldn't be any system capable of running mutter
that doesn't have it and we're introducing functionality like setting
the keymap that has an hard requirement on it.

https://bugzilla.gnome.org/show_bug.cgi?id=734301
backends: Add methods to handle keymaps

These methods allow us to set and get xkbcommon keymaps as well as
locking a specific layout in a layout group.

With this, we introduce dependencies on xkeyboard-config, xkbfile,
xkbcommon-x11 and a libX11 new enough to have xcb support.

https://bugzilla.gnome.org/show_bug.cgi?id=734301
wayland-keyboard: Use the backend's keymap

Instead of getting it from xwayland, let's just keep a reference to
the backend's keymap.

https://bugzilla.gnome.org/show_bug.cgi?id=734301
backends: Make MetaBackend available to introspection

This moves meta-backend.h under meta/ and, for now, just exposes to
introspection the methods that we actually need in gnome-shell.

https://bugzilla.gnome.org/show_bug.cgi?id=734301
Updated Basque language
Updated Basque language
MetaTextureTower: actually mark revalidated levels as valid

We were never actually clearing the invalid area on the smaller levels
of the texture tower, so we recomputed those levels every time.

https://bugzilla.gnome.org/show_bug.cgi?id=734400
background: Don't bother supporting alpha channels for gradients
background: Merge the code for creating the color texture into here

It's unused anywhere else.
compositor: Don't use cogl_texture_new_with_data in the obvious cases

It's a deprecated API that can surprise us. Namely, when the internal
format passed is COGL_PIXEL_FORMAT_ANY, it will *always* allocate an
RGBA8888 pixel format texture, even if we only passed it a RGB format
or even an A8 format.

cogl_texture_2d_new_with_data is the newer, better API and doesn't have
these warts.
background: Don't render with blending when we don't need to

If we have an opaque background image, then we shouldn't need to blend
against anything for it to work. Turn off blending in this case.
background-actor: Don't bother clipping to the content box

We already clip to the content box when we go to paint the content.
background: Don't bother attaching a paint node if the region is empty
texture-tower: Fix error case in meta-texture-tower

If we for some reason have an error trying to allocate the framebuffer,
we'll still mark the tower as revalidated. Move the validation to the
end of the actual revalidation code to solve this.
core: Select the X11 backend of Clutter

Mutter depends on the X11 windowing backend of Clutter, unless it's used
as a Wayland display server.

This allows Mutter to run without breaking in case Clutter changes the
order with which windowing backends are selected, like it was the case
for bug https://bugzilla.gnome.org/show_bug.cgi?id=734587

The order of selection of the Clutter backends has not been made public,
so it cannot be relied upon since the introduction of the multiple
backends support; since Mutter requires the X11 backend functionality,
it should select the X11 windowing system, in the same way it selects
the EGL backend when compiled and run as a Wayland display server.