xdg-shell, xdg-shell-v6: don't emit unmap if surface is unmapped
Some clients create an xdg_surface, then create an xdg_toplevel, but don't map it and destroy it right after. The xdg_surface ends up in a state where it isn't mapped but role-specific resources have been allocated. xdg_surface_unmap needs to free these resources without emitting the unmap signal.
Test plan: try @agx's weston-simple-dmabuf-drm --import-format=NV12
Fixes #737 (closed)