clients: Remove the window / user parameters from the menu function

We want the ability to create a detached menu.
desktop-shell: Rename the ping methods
desktop-shell: Make the ping infrastructure more generic

We want to send a ping out when we want to close a surface, and get
a callback if it fails so we can fall back to killing it.
desktop-shell: Split out kill
desktop-shell: Add an Alt+F4 binding to allow closing windows
desktop-shell: Centralize fullscreen state setting

This makes the fullscreen binding work on wl_shell_surface surfaces
again.
desktop-shell: Prefix the wl_shell_surface implementations with "wl_"

shell_surface_* is the namespace for any shsurf method, no matter how
it's implemented. We're going to rearrange this to make this clear soon.
desktop-shell: Group the wl_* interface method implementations together
clients: Allow creating a "detached" menu

This will be used by the xdg_surface.show_menu_window implementation.
xdg-shell: Add set_surface_type request

This allows clients to set a hint about what kind of surface it is.
xdg-shell: Add show_window_menu request
custom
desktop shell window menu