stage: Refactor the cursor drawing code into a generic "overlay" system

This isn't really anything but a really small actor system. This will be
used for DND cursors as well.
stage: Make the API take a CoglTexture

MetaCursorReference doesn't really need to be part of the API.
wayland: Update the CoglTexture in the MetaWaylandSurface

It doesn't make sense to update it in the surface actor. It's also
theoretically wrong to update the buffer's texture on surface commit,
too, because it's buffer state, not surface state, but I don't think
there's any place we use a wl_buffer without a wl_surface.
surface-actor-wayland: Don't store the buffer

We don't need to anymore -- we're purely texture based.
surface-actor-wayland: Pass in a CoglTexture, as well

This makes it so that MetaSurfaceActorWayland is effectively just a
wrapper actor around MetaShapedTexture with some extra scaling. I think
the MetaSurfaceActor subclassing was a bad idea -- we really should have
these abstractions in much higher levels in the stack than the
compositor.
events: Update the pointer position here

Rather than in the Wayland front-end, since it's really a core operation.