Add compositor surface

This PR adds a preliminary implementation for the `wl_surface` interface.