xdg-shell: Handle role destruction in xdg_surface properly
xdg-shell: Handle role destruction in xdg_surface properly

xdg_surface should clear its `role` field upon destruction of its
role. Then, in its destructor, it can destroy the role only if it
has not already been destroyed.

This fixes a double-destruction of xdg_toplevel if it is destroyed
explicitly before the xdg_surface (as the spec requires).

michaelforney/swc