add a wrapper around wl_listener
listen for the destroy event of the underlying surface
stop the animation on destruction
disconnect from a surface's signals when it is removed
remove leftover code