Fix grab-scrolling on Chrome

* Don't use MouseEvent.buttons
* We reliably get mouse-up when the mouse is outside the window if
  we addEventListener on window rather than document.body, so simply
  handle mouse-up outside the window that way.
* Add -webkit-grabbing to the grab-cursor CSS