Add compositor wl shell

This PR adds a preliminary implementation of the `wl_shell`.
Because the function takes a `void*`, so the type is irrelevant.