feat($animate): allow directives to cancel animation events

Closes #7722
fix($animate): remove the ng-animate className after canceling animation

Closes #7784
Closes #7801
Closes #7894
docs(guide): fixes to ngShow/ngHide animations
feat(FormController): add `$rollbackViewValue` to rollback all controls

Currently it is possible to use `ngModelOptions` to pend model updates until form is submitted, but in case the user wants to reset the form back to its original values he must call `$rollbackViewValue` on each input control in the form. This commit adds a `$rollbackViewValue` on the form controller in order to make this operation easier, similarly to `$commitViewValue`.

Closes #7595
perf($compile): no longer need nodeType filter when setting $scope data

Closes #7887
fix($animate): ensure that parallel class-based animations are all eventually closed

When multiple classes are added/removed in parallel then $animate only closes off the
last animation when the fallback timer has expired. Now all animations are closed off.

Fixes #7766