windowpicker: backport solution from lifecycle update
In commit 62cf437d (on the master branch) we modified the lifecycle of TaskItems in the window-picker applet to ensure that items are correctly freed when they move between panels.
The change from that commit is a bit too large to backport to a stable branch, so this change picks up the solution but without the needs to port all of the changes. Instead we just ensure that signal handlers get properly reconnected when an item moves between task lists.