Implement subsurface.place_below() for parents

Merged Robert Mader requested to merge rmader/mutter:subsurface-reordering into master

From the second commit:

    Flatten the subsurface actor tree, making all surface actors children
    of the window actor.
    Save the subsurface state in a GNode tree in MetaWaylandSurface, where
    each surface holds two nodes, one branch, which can be the tree root
    or be attached to a parent surfaces branch, and a leaf, which is
    used to save the position relative to child branch nodes.
    Each time a surface is added or reordered in the tree, unparent all
    surface actors from the window actor, traverse all leaves of the
    tree and readd the corresponding surface actors back to the window

This does not take surface offset into account any more, see !684 (comment 555420) for context why we shouldn't.

Implements #440 (closed)

Edited by Robert Mader

Merge request reports