pointer: Reindent
pointer: Unset the window cursor when we do a pick

... not when we do an update.

We only repick when we handle events, not when we update. Perhaps
this is a mistake.

Since update runs before handle_event, this means that when we
drop a grab, update will notice the NULL surface, since we haven't
repicked after the event, and then we'll repick the correct surface.
The end result is that you see a root cursor after a grab ends,
rather than the correct window cursor.

This doesn't fix it, since the current surface becomes NULL when
we start the grab. But it does make the code here more correct when
we fix that bug.
pointer: Merge update_current_focus and repick_for_event

In order to correctly fix the issue to make sure we only set the
focused surface to NULL during a grab, but not the current surface,
we need to merge update_current_surface back into repick_for_event
so we have more control over the behavior here.
pointer: Clean up repick_for_event a bit
pointer: Only the focus_surface should only be influenced by the grab

... not the normal current. That should *always* be the surface under
the pointer, regardless of events.
pointer: Split out the code that sets the focus surface
pointer: Split out the code that gets the proper focus surface as well
pointer: Move update up

It seems that I forgot or messed this up in one of my reshufflings.