Make sure to send MOUSEMOTION on window enter.

This should hopefully fix bug #1612. We now send mousemotion events when
the cursor enters the window as well as when it leaves.

Thanks to Alex Szpakowski for the fix.

Fixes http://bugzilla.libsdl.org/show_bug.cgi?id=1612

--HG--
extra : histedit_source : e89e8952efcc07da98a306757edeaeded31517a9
Mac: Make mouse movement smooth at edge of window when grabbed.

There's a limit of one update every 250ms when warping the mouse, and we
can work around that by disassociating the cursor & the mouse before
issuing our warp, then re-associating them.

--HG--
extra : histedit_source : 91ddf6078107ea9faf1c769a459e99bce6e61180
Mac: Fix unmatched hide/show cursor calls.

This tracks the previous hide/unhide state of the cursor, so we don't
re-hide a hidden cursor.

--HG--
extra : histedit_source : d41e30a604fb9ff0da8fcfdd9ca926618e35c750
Mac: Fix cursor not updating when re-focusing the window.

This fixes a bug where [NSCursor set] doesn't take when called in
certain event handlers (like windowDidBecomeKey:).

http://bugzilla.libsdl.org/show_bug.cgi?id=1795

--HG--
extra : histedit_source : 3f150addd3b1b7bc6397aba60ccf05f9065ffb8c