Implement mouse-based focus.

Implement focus-follows-mouse and sloppy focus within
ratpoison. Unlike the separate program sloppy.c, this also permits
focus-follows-mouse with correct interaction with the root window. The
sloppy.c program does not have access to ratpoison's internal frame
set, and so can't focus frames that do not contain windows.

It is hoped that this will prove more reliable than sloppy.c as well,
though sloppy.c has been reasonably good of late, to be fair.
Document focus_policy.
Do not propagate motion events: we only care when over the root window.

Handling motion events on other windows does not lead to incorrect
behavior, but it is inefficient, since we will always elect to discard
the even, since the window was already focused by the EnterNotify that
moved the mouse over the window.
Warp the pointer on non-mouse focus changes when focus policy permits mouse tracking.

If focus policy is not manual, then a keyboard generated focus change
that doesn't warp the mouse to the new window could allow the focus
to snap back because the mouse was left behind. So warp the mouse
to prevent such unintuitive behavior.
Merge branch 'ffm'
Resolve multiple patch conflict.

The focus policy patch was unaware of a call to give_window_focus()
introduced in another patch.