Mac: Better mouse-grab if you define SDL_MAC_NO_SANDBOX.

This uses a better mouse grab if you define SDL_MAC_NO_SANDBOX. This
mouse grab uses CGEventTapCreate, which you cannot access if you have
sandboxing enabled.
Mac: Don't -[NSOpenGLContext update] on (potentially) the wrong thread.

If the user is using their context from a non-main thread, we could be
calling -[NSOpenGLContext update] on our thread, while they were
accessing it on their thread.

With this change, we schedule updates when the event comes in on the
main thread, and act on them when the user calls SDL_GL_MakeCurrent or
SDL_GL_SwapWindow.
Mac: Support for multiple contexts per SDL_Window.
Ensure that the right window is current in SDL_GL_SwapWindow.
The return value of SDL_MostSignificantBitIndex32(0) is defined as -1.

--HG--
extra : rebase_source : b9f0ed0a769617991e6eadf9d6a3efa17112d1a4