Add compositor wl shell

This PR adds a preliminary implementation of the `wl_shell`.
Why are you using the function call above but the macro here?