Add compositor wl shell

This PR adds a preliminary implementation of the `wl_shell`.
If you look at it in another way, it's _less_ coupled, as you only depend on the type to be present, but not on the internals.
Anyways, I added the note.