wayland: Tie XDG surfaces together with the Shell that created them

This means that we don't leak when a client binds an XdgShell for a
client more than once, and we send pings/pongs to the correct shell
interface.