Add compositor wl shell

This PR adds a preliminary implementation of the `wl_shell`.
`ws_object_getref()` returns `NULL` on failure, you know that?