desktop-shell: Don't crash if output is removed during fade
The desktop shell output removed handler deletes the fade surface, if it's still running - however, that surface has a view that also has a listener attached to the output_destroyed signal. Destroying the surface will delete the view, which will remove that handler and corrupt the list, because we can't remove nodes from a wl_list while a walk is in progress.
Instead, destroy the fade surface from the output user_destroy_signal, which runs earlier from a different wl_list.
The easiest way to reproduce this crash is to run: weston --invalid_command_line_option
Signed-off-by: Derek Foreman derekf@collabora.com