wayland: Add a --display-server option

This makes Gnome Shell run as its own display server.
wayland: Create a dummy stage window when running as a display server

When Mutter is running as a display server then Clutter won't be using
the X11 backend so there won't be a window for the stage. The shell
global keeps track of this stage window to be used in various places.
This patch adds a dummy window that is never mapped to use instead of
the stage window so that the various places that are using it might be
able to continue working without generating X errors.
wayland: Don't set properties on the overlay window on Wayland

When Mutter is running as a display server it won't create an overlay
window. Therefore we shouldn't need to set the DND proxy on the
window. This was previously causing X errors when it tried to set a
property on an invalid window.
Don't pass on X events to Clutter

The Mutter plugin manager has now been changed so that it itself will
pass on the events through Clutter so there is no need to do this in
Gnome Shell anymore.
ShellGlobal: avoid one use of ClutterX11

clutter_x11_get_stage_window() will abort if clutter is not
using the x11 backend (such as when running under DRM). We already
have a fake X window in ShellGlobal, let's use that instead.
StEntry: don't call ClutterX11 methods if Clutter is not using x11

It causes an assert and crashes.
ShellGlobal: don't use Gdk to query the pointer position under wayland

Gdk uses Xwayland, so it only sees the events we forward to X11
clients. Instead, under wayland we can use clutter and be sure
that the value it provides reflect the actual pointer position.
Add support for running wayland under gnome-session

Include a .desktop file that autostarts us as a wayland compositor.