Add compositor wl shell

This PR adds a preliminary implementation of the `wl_shell`.
The only thing I don't like is that it looks like tight coupling. *However* this is part of the compositor module! So this is kind of expected. I have no trouble with this, however I would like a comment specifying which file originally holds the definition of the *real* struct.