actor: Define the scene structure inside Actor
actor: Define the scene structure inside Actor

Instead of storing the list of children, let's turn Actor inside a
proper node of a tree.

This change adds the following members to the Actor private data
structure:

  first_child
  last_child
  prev_sibling
  next_sibling

and removes the "children" GList from it; iteration is performed through
the direct pointers to the siblings and children.

This change makes removal, insertion before a sibling, and insertion
after a sibling constant time operations, but it still retains the
feature of ClutterActor.add_child() to build the list of children while
taking into account the depth set on the newly added child, to allow the
default painter's algorithm we employ inside the paint() implementation
to at least try and cope with the :depth property (albeit in a fairly
naïve way). Changes in the :depth property will not change the paint
sequence any more: this functionality will be restored later.

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