actor: Improve conditions for skipping implicit transitions
actor: Improve conditions for skipping implicit transitions

The "should this implicit transition be skipped" check should live into
its own function, where we can actually explain what it does and which
conditions should be respected.

Instead of just blindly skipping actors that are unmapped, or haven't
been painted yet, we should add a couple of escape hatches.

First of all, we don't want :allocation to be implicitly animated until
we have been painted (thus allocated) once; this avoids actors "flying
in" into their allocation.

We also want to allow implicit transitions on the opacity even if we
haven't been painted yet; the internal optimization that we employ in
clutter_actor_paint() and skips painting fully transparent actors is
exactly that: an internal optimization. Caller code should not be aware
of this change, and it should not influence code outside of ClutterActor
itself.

The rest of the conditions are the same: if the easing state's duration
is zero, or if the actor is both unmapped and not in a cloned branch of
the scene graph, then implicit transitions are pointless, as they won't
be painted.

https://bugzilla.gnome.org/show_bug.cgi?id=698766

GNOME/clutter,djdeath/clutter,GNOME/clutter,jigpu/clutter,ebassi/clutter,jigpu/clutter,jigpu/clutter,jigpu/clutter,Distrotech/clutter,ebassi/clutter,Distrotech/clutter,Distrotech/clutter,ebassi/clutter,GNOME/clutter,djdeath/clutter,djdeath/clutter,Distrotech/clutter,djdeath/clutter,jigpu/clutter,Distrotech/clutter,GNOME/clutter,jigpu/clutter,GNOME/clutter,Distrotech/clutter,djdeath/clutter,ebassi/clutter,djdeath/clutter,ebassi/clutter