desktop-shell: Fail if get_xdg_surface is called on an xdg_surface
desktop-shell: Fail if get_xdg_surface is called on an xdg_surface

If a client calls xdg_shell.get_xdg_surface on a surface that is already
an xdg_surface would, prior to this patch, succeed, but cause weston to
crash later when trying to configure. This patch instead sends a role
error to the client complaining that it already is an xdg_surface.

Note that .._set_role() only fails when changing roles, not when setting
the same role twice.

The same is done for xdg_popup.

Signed-off-by: Jonas Ådahl <67dcd8a17e758192e0cbb577ce1d62cc7da6cf49@gmail.com>
Reviewed-by: Daniel Stone <62e7e355d5d8400fa8384448796af0bf6be4ffae@collabora.com>
Reviewed-by: Bryce Harrington <bdb14cfc1ab8d24e13de84adc40b41ae60c13bd1@osg.samsung.com>

Gnurou/weston,eyolfson/weston,udoprog/weston,Tarnyko/weston-xdg_surface_present,kwm81/weston,mchalupa/weston,sir-murray/weston,krezovic/weston,giucam/weston,xorgy/weston,eyolfson/weston,jonnylamb/weston,udoprog/weston,kwm81/weston,xorgy/weston,Tarnyko/weston-xdg_surface_present,giucam/weston,mchalupa/weston,Gnurou/weston,jonnylamb/weston,Fantu/compositor-spice,sir-murray/weston,Fantu/compositor-spice,krezovic/weston,Fantu/compositor-spice