MacViews: Implement capture using NSEvent local+global monitors
This allows drag&drop to work, and Menus to dismiss themselves properly.
Adds a CocoaMouseCapture to encapsulate the logic to simulate
::SetCapture() from Windows APIs. "Cocoa" because it uses the cocoa APIs
on NSEvent rather than Quartz APIs from CoreGraphics to intercept mouse
events. (Quartz allows events sent to other applications to be
suppressed as well as monitored, but we don't want that).
Allows the WidgetCaptureTests in widget_interactive_test.cc to pass. One
test was failing because the widget could not activate, so the code in
native_widget_mac_interactive_uitest.mm that was setting the activation
policy is moved to views_test_helper_mac.mm.
BUG=403679
Review URL: https://codereview.chromium.org/
789763002
Cr-Commit-Position: refs/heads/master@{#308886}