Add and use Interactable#validateSetting
demo/snap: mprove code and interact.js API usage
Merge branch 'snap'
Fix a horrifying bug that ruined selectors

Store the starting target element and then restore it correctly later