wayland-surface: Apply the surface scale only if needed

There's no need to call scale_texture on every commit.
wayland-surface: Move wl_surface.frame above role-specific stuff

The role-specific stuff will soon be part of a set_role callback set on
the surface itself.
wayland-surface: Group MetaWaylandSurface members logically

And add comments so that we know what's what. This cleans up the struct.
wayland-surface: Rename the subsurface extension to wl_subsurface

To match the interface name.
wayland-surface: Remove create_surface_extension and friends

This function has a lot of parameters, and doesn't do much in the way of
boilerplate. It's a lot simpler to hand-code.
wayland-surface: Remove MetaWaylandSurfaceExtension

It only contained a pointer to a wl_resource, which isn't much of
value. Just replace it with the wl_resource instead. Any future private
data should be handled by our future role system.