Desklets: Make sure to clean up when a drag is cancelled. (caused crashing)

DND: In some cases of a cancelled drag, the event handler would still be connected,
causing an in-between state, and preventing a new drag from being started, or an
old one from being completed.
Replace DnD threshold calculations to allow checking while off the
actor we're receiving events from.  This fixes the problem of attempting
to drag an item from it's edge, and then off the actor entirely, at which
point the threshold checker would stop receiving events until you went
back over the actor, resulting in a very confusing experience.

This uses a timer based check that is started at the same time as previously,
but it uses global.get_pointer at intervals to compare the current mouse
position with the drag start points, regardless of whether you're still
over the actor or not.
Remove some logging
DnD: Always recenter the dragged item on the mouse pointer once a drag
begins.
Improve desklet 'snap' behavior a little bit, have the snap guide follow
the dragged actor in a more natural fashion.
desklets: A bit more logical grid behavior when dragging
Make the pointer position during a drag the initial down-click point where
the user started the drag, instead of snapping to center regardless.
Fix desklets covering nemo desktop items, fix null reference
desklets/DnD: Fix for desklets becoming unresponsive temporily when
dropping them over a normal window.  They now consider that an invalid
drop target, and will snap back to their original position.
dnd:  have cancel snap-back take place over the rest of the items on the desktop
desklets: put container back to original spot, having them behind icons won't
work as long as nemo is renderering the background.
Desklets - hide the drag placeholder immediately upon cancelling a drag,
don't wait for the snap-back animation to complete.
Merge pull request #1931 from mtwebster/dnd

Desklets: Make sure to clean up when a drag is cancelled. (caused crashing)