wayland: Do a small code cleanup

Pass the surface rather than the resource / client. This will become
a lot more helpful in the next commit.
wayland: Rearrange create_surface_extension a tiny bit

This moves all the "uninteresting" variables we pass to the end.
wayland: Do a giant code cleanup

This changes the user data of all surface extensions resources to be
the MetaWaylandSurface instead of the MetaWaylandSurfaceExtension,
which means that we no longer need all these pesky wl_container_ofs
in implementations.