docs(headerFooter): Typo
fix(loading): Prevent clicks on modal views when loading is active. Closes #1720
fix(list): add extra margin-bottom to the last list if the list is also a card. Fixes #1708
refactor(scrollController): remove console.logs
fix(sliderView): "getBoundClientRect" typo
fix(ionReorderButton): stop `ngRepeat:dupes` error when reordering

Closes #1601.

BREAKING CHANGE: Reordering with ion-reorder-button no longer changes the order of the items in the DOM.

This change will only break your list if you were not using the
onReorder callback as described in the documentation.

Before, while reordering an element in a list Ionic would swap the
elements underneath as the reordering happened.  This sometimes caused
errors with angular's ngRepeat directive.

Now, reordering an element in a list does not change the order of
elements in the DOM.  It is expected that the end developer will use the
index changes given in the `onReorder` callback to reorder the items
in the list. This is simple to do, see the [examples in the
ionReorderButton
documentation](http://ionicframework.com/docs/api/directive/ionReorderButton/).
feat(ionSideMenu): add `edge-drag-threshold`, delegate `edgeDragThreshold()`

Closes #1570
test(list): use timeout.flush()
fix(navBar): only add default animation if there is no custom animation

Closes #1671
refactor(collectionRepeatDataSource): remove accidental test variable
refactor(collectionRepeat): add a require-able controller to the directive
fix(scrollView): always stay exactly within boundaries after bounce

Closes #1736
fix(tap): only check classList on tap target if it has classList

Closes #1677
refactor(tap): use !! to check boolean in classList check
fix(sideMenu): when drag-content=false, allow drag-to-close

Closes #1419
fix(ionList): allow scrolling while reorder or delete is active

Closes #1703
feat(ionSlideBox): add 'auto-play' attr to optionally disable auto-play

Closes #1552
docs($ionicGesture): update .off() parameters to match code

Closes #1734

Coming from the documentation `$ionicGesture.off` had to be called like `$ionicGesture.off('swipe', mySwipe, myElement)`. Instead, it has to be called with the gesture returned from `$ionicGesture.on` and the type+callback to remove.

I added the `@returns {ionic.Gesture} ...` to `.on` to make clear that this returns the gesture you may want to remove later on. I also made the documentation for `.off` match the function signature.
test(ionList): remove tap-disabled from tests
fix(scrollView): cloned input for keyboard-scroll now matches original

Closes #1721