Apart from removing a lot of code, this commit also introduces (thanks
to wlr_scene) fine-grained damage tracking.
The lack of our own rendering code will only be an issue if the need for
custom effects (such as blur) arises; however, that's very unlikely and
it would probably require a lot of changes anyway.
At the moment it isn't used at all and a lot of data is duplicated. This
is a temporary state introduced for nicer diff separation into several
commits.
With the migration to wlr_scene, some objects (desktop, output etc)
will no longer have any reason to care about individual shells and
similar; handling each one on its own would introduce code that is,
from their perspective, over-complicated.
Strata (sg. stratum; this name was chosen to avoid confusion with the
over-used 'layer') represent logical layers of surfaces on the desktop,
such as every layer shell layer, one for xdg shell, another for popups.
This targets only surfaces under kiwmi_view, thus only XDG shell. Other
surfaces to be fixed later.
The new code here is copied over from wlroots, with only small
modifications.
This commit ensures that they also cause output damage to happen and
that popups are moved into the visible area.
I browsed the source code of Sway while writing this and took a lot of
inspiration and help from there.