Allow placing subsurfaces below parent surface
According to the spec, if the parent surface is specified in the wl_subsurface.place_below(), the subsurface has to be rendered below the parent surface.
At the moment, kwaylandserver doesn't handle that case properly. It is not possible for sub-surfaces to go below the parent surface.
Another issue is that we wrongly assume that the place_above request will put the subsurface on top of the stack if the parent surface is specified as sibling. It doesn't seem like that's the case, not according to the spec.
This change splits the child sub-surface list in two lists - below and above.
Edited by Vlad Zahorodnii