actor: Change the point of emission of ::destroy
actor: Change the point of emission of ::destroy

Currently, we're emitting the ClutterActor::destroy at the end of the
dispose implementation - right before we chain up to the parent
implementation.

The point of emission makes the ::destroy signal handlers able to just
use the actor pointer - as the actor state will have been mostly cleared
by the time application can run. This (undocumented) behaviour severely
limits the amount of things you can do inside a ::destroy signal
handler, thus making the ::destroy signal just a weird weak reference,
instead of a proper way to break application reference cycles.

Given that this change relaxes some of the conditions, this change
should be safe - obviously, if anything happens, we'll back it out; the
conformance and interactive tests confirm that, for common patterns of
usage, this change does not break existing code.

jigpu/clutter,jigpu/clutter,jigpu/clutter,Distrotech/clutter,GNOME/clutter,kerrickstaley/clutter-vala,djdeath/clutter-android,djdeath/clutter-multithreaded,heysion/clutter-clone,heysion/clutter-clone,jigpu/clutter,djdeath/clutter,collects/clutter,ebassi/clutter,GNOME/clutter,ebassi/clutter,djdeath/clutter,kerrickstaley/clutter-vala,heysion/clutter-clone,ebassi/clutter,collects/clutter,djdeath/clutter-multithreaded,djdeath/clutter-multithreaded,GNOME/clutter,Distrotech/clutter,collects/clutter,djdeath/clutter,Distrotech/clutter,Distrotech/clutter,djdeath/clutter-android,Distrotech/clutter,djdeath/clutter-android,djdeath/clutter,kerrickstaley/clutter-vala,ebassi/clutter,djdeath/clutter-android,jigpu/clutter,heysion/clutter-clone,GNOME/clutter,heysion/clutter-clone,djdeath/clutter,jigpu/clutter,collects/clutter,collects/clutter,djdeath/clutter-multithreaded,Distrotech/clutter,ebassi/clutter,GNOME/clutter,kerrickstaley/clutter-vala,djdeath/clutter,djdeath/clutter-android