Don't create a new closest object on every update
Implement path snapping

interact(element).snap({
    mode: 'path',
    paths: [
        function (x, y) {
            return {
                y: 300 + Math.sin(x * 0.04),
                range: 300
            };
        }
    ]
})
Fix default rectChecker's heigt calculation
Fix snap with axis object paths
Add Interactable#origin method

For example, by doing the following

    var rect = interact(element).getRect();
    interact(element)
        .origin({
            x: rect.left,
            y:rect.top
        });

all event coordinates will be relative to the element's top left corner
Merge branch 'snap'