clutter/timeline: Clear stage view listener when actor destroyed

We might have a stage view listener attached to the stage itself if the
actor didn't have a suitable frame clock when the actor was associated
with the timeline. We'd then listen to stage-views-changed signals on
the stage itself to be able to attach to a frame clock when one
appeared.

What went wrong is that if an actor that didn't have a frameclock was
associated with a timeline, but then destroyed, the timeline would
disassociate itself from the actor, but it'd still listen on the
stage-views-changed signal on the stage. This would be in itself
harmless, until the timeline itself is destroyed, as at this point, it
wouldn't clean up the stage-views-changed listener on the stage, as it's
assumed to only be valid when there is an actor attached.

Fix this issue by cleaning up the stage's stage-views-changed listener
when the actor is destroyed, as we wouldn't be able to make use of it by
then anyway.

Closes: gnome-shell#3323


(cherry picked from commit eaa98a7c)
6 jobs for !1721 with cherry-pick-eaa98a7c in 4 minutes and 37 seconds (queued for 2 seconds)
detached
Status Job ID Name Coverage
  Review
failed #1138844
check-commit-log

00:00:07

 
  Build
passed #1138845
build-mutter

00:01:44

passed #1138847
build-without-native-backend-and-wayland

00:01:39

passed #1138846
build-without-opengl-and-glx

00:01:09

 
  Test
passed #1138849
can-build-gnome-shell

00:01:04

passed #1138848
test-mutter

00:02:51

 
Name Stage Failure
failed
check-commit-log Review

Skipping Git submodules setup
Executing "step_script" stage of the job script
$ ./.gitlab-ci/check-commit-log.sh
From https://gitlab.gnome.org/GNOME/mutter
* branch gnome-3-38 -> FETCH_HEAD
Commit cb24b31d needs a merge request or issue URL
Cleaning up file based variables
ERROR: Job failed: exit code 1