Add "endOnly" snapp setting

`interact.snap({endOnly: true})` will not snap coordinates while the
pointer is moved by the user. When the pointer is released, a move
event is created, snapped and fired immediately before the end event.
Set snapStatus and restrictStatus in functions
Add "status" parameter to setSnapping

Snap status properties are assigned to this object if it is provided
Replace repeated path snap code with anchor snap

Also fixes unexpected behaviour of the possibility of snapping to x and
y of different paths
Make "endOnly" restriction option functional
Use native requestAnimationFrame if available