Fixed bug where onSnap callback wouldn't fire if the scroll landed perfectly on the spot it would have snapped to

If you're scrolling and by some chance you manage to hit the "snapped" position exactly, onSnap wouldn't fire.  This is a fix for that.  I've added a second parameter to the callback, "silent," to differentiate when onSnap fires after such an occurrence.  If the user hit the mark perfectly and no snapping animation was needed, "silent" will be true.  In all other cases, it will be falsey (actually undefined), preserving backwards compatibility.