xwayland: Implement xwayland_shell_v1
Implements the xwayland_shell protocol which makes the surface association happen via a shared serial, rather than sharing a wl_surface resource ID across an X atom. This solves a race that can happen if the wl_surface associated with a WL_SURFACE_ID for a window was destroyed before the update of the atom was processed by the compositor and another surface (or other object) had taken its id due to recycling. Closes: #1157 Signed-off-by: Joshua Ashton <joshua@froggi.es> Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>