(mouse-avoidance-set-pointer-shape): New function.
(mouse-avoidance-nudge-mouse): Use it.
(mouse-avoidance-fancy-hook): streamline args to set-mouse-pos.
(mouse-avoidance-point-position): new function, using
new `compute-motion' functionality. Use of this fixes bugs
involving wrapped lines & horizontally-scrolled windows.
new avoidance mode, "exile", like "banish" but temporary.
jump/animate modes now keep track of net offset that
they have moved the mouse, and try to keep this near 0. No longer
wraps to other side of screen.
(mouse-avoidance-mode): update mode line.
(mouse-avoidance-*-hook): do nothing if inside kbd macro.