feat($swipe) Add config param to allow choosing X/Y thresholds.

Closes #4550
Closes #5812

- Create config parameter to pass in swipe/scroll (X/Y) thresholds.
- Allow the new thresholds to be applied to how the function determines when
to scroll and when to swipe.
- Fix bug where swiping back and forth within the thresholds would cause a bad
cancel event.
- Fix bug where if you went back inside the thresholds, you could potentially
cancel a swipe in progress.
- Add tests for all these changes.
- Clean up the docs and add definition for the parameters used in
`$swipe.bind`.
I've implemented tests for about half of the truth table so far, and there are a number of failures (with and without the suggested change).

I'm not 100% sure the truth table is correct (that is, that it does what we necessarily want it to do, not that it's not mathematically correct), because I don't like assigning specific gestures to specific axis, they should be able to work in any axis.

I think we should just leave it for now and maybe address the remaining issues later