window-actor: Clean up has_shadow

This has some particularly picky #if 0'd code. Since the history for
it isn't illuminating in the slightest, I'm just going to kill it.
wayland: Implement wl_seat v3

The new XWayland DDX flat out requires seat v3.
wayland: Replace make_toplevel / window_unmanaging with set_window

The make_toplevel / window_unmanaging interface has never made
a lot of sense to me. Replace it with set_window, which does
effectively the same thing.

It's still not perfect in the case of XWayland, but I don't think
XWayland will ever make me happy.
wayland: Rename the wl_surface interface handlers

We usually name the method handlers after the direct name
of the interface methods. Do that for wl_surface as well.
xwayland: Use %m instead of manual strerror(errno)
xwayland: Move global initialization down
xwayland: Split out the code that creates the XWayland sockets
xwayland: Move display_name into choose_xdisplay
xwayland: Fork the X server ourselves

gspawn just isn't us the fine-grained control we need for starting
processes and leaking file descriptors in.
xwayland: Make file cosmetically modern

Put a modeline, include "config.h", and shift around the include ordering
xwayland: Split a helper out

This will make the next commit, which ports to the new ClientMessage
API, more understandable.
xwayland: Split another part of the initialization sequence out

This will be used from a SIGUSR1 handler.
background: Remove load_still_frame

Nothing uses it, and it's incompatible with XWayland anyway.
xwayland: Detect a fail to fork
xwayland: Make failing to exec a fatal error
xwayland: Don't use glib after forking

glib doesn't have any guarantee about working after forking.
We can get away with it, but we're better off just not using it.
tests: employ wl_test object protocol from Weston

Use Weston's wayland-test.xml specification.
tests: introduce mutter-test plugin

This plugin will create wl_test global in mutter and will provide
basic testing capabilities
test plugin: add wl_test global

Create wl_test global in init function and set up binding
events: remove static keyword from meta_display_handle_event

Make it 'public' but do not add it into any header file (thus it must
be declared before using). Let use it only those, who know that :)
I need it in tests.