Don't try to style the cursor of `document`
snap: keep grid offset in snap.gridOffset

Also in demo, do not rely on the snap object remaining unchanged by
other code.
README: update grid snapping example
return a new snap object from interact.snap()
demo/snap: fix events and improve style