wayland: Record the offset position

This is needed for DND surfaces. We should probably test to see if it's
used for cursor surfaces at all.
data-device: Store the current drag grab

And bail out if any further start_drag() is attempted.
wayland: Keep track of the origin surface and drag point on DnD

Keeping track of the surface will be necessary in case it is destroyed
during DnD, and the coordinates will be useful when figuring out the
snap back coordinates.
wayland: Store whether the wl_data_source has a target selected

It will be useful to check whether DnD is going to fail or not.
compositor: Add a "feedback" window group

Although not strictly a window group... This ClutterActor is
meant to stay always on top, and only show non-reactive actors
created by Mutter itself. Two possible usecases for this layer
are DnD surfaces, and touch spots.

We might also want to move cursors out of an overlay in MetaStage
into here at some point.
compositor: Add MetaFeedbackActor

This actor is a non-reactive container that autoembeds itself into
the feedback window group in the compositor. The API is meant to
help on creating things attached to pointer/touchpoints, with an
X/Y attachment offset, and following the position of certain events.
compositor: Add MetaDnDActor

This actor is a subclass of MetaFeedbackActor that additionally
implements the "drag failed" animation, snapping back to the drag
origin position in a surface.
wayland: Use a MetaDnDActor for the DnD icon surface

The actor is updated on DnD grab motion events, properly notified
when dragging finishes, and destroyed if the client/surface disappear
below its feet.
wayland: Ensure drag surface offset changes update the DnD actor