Add compositor wl shell

This PR adds a preliminary implementation of the `wl_shell`.
I'm undecided here. I would like to wait for comments from @TheNeikos and if he ACKs, I'm fine with it.

Are you fine with this suggestion? I'll notify him directly right now.