wayland-seat: Fix updating the grab serial

We shouldn't update the grab serial if we go from 2 buttons => 1.
Add support for xdg-shell

Replace our existing support for wl_shell with xdg_shell, the new proposal
for how Wayland surfaces should work.
wayland-surface: Remove initial_state

Just put everything in the double buffered state so it all
arrives at the same time; on commit.
wayland: Send xdg_surface_focused_set / xdg_surface_focused_unset