window-actor: Update the shape region when the surface actor changes size
wayland-surface: Don't rewrite input/opaque regions if the client doesn't attach any
wayland-surface: Properly allow setting the cursor to a NULL buffer
wayland-surface: Rework flow control for wl_surface_commit
cullable: Use relative actor coordinates for culling

This ensures that nested cullables work fine.
shaped-texture: Make Cullable

Make MetaWindowActor chain up to the generic default MetaCullable
implementation, and remove the helper methods for MetaSurfaceActor
and MetaShapedTexture.
surface-actor: Add setters for set_input_region / set_opaque_region

Subsurfaces won't have a MetaWindow or MetaWindowActor to fetch these from,
so they need to be tied directly to the MetaSurfaceActor.
wayland-surface: Replace MetaWindowActor with MetaSurfaceActor

Since subsurfaces won't have toplevel MetaWindowActors, we need to
use MetaSurfaceActor instead. These are embedded in the MetaWindowActor,
just like MetaShapedTexture was (in fact, MetaSurfaceActor now contains
a MetaShapedTexture)
window: Make setters for shape/input/opaque regions private again

Wayland now pushes these to the surface actor rather than the toplevel
MetaWindow...