test(orderBy): implement benchmark for ngRepeat with orderBy
chore(package.json): update to dgeni-packages v0.9.8

Closes #8860
refactor(ngSwitch): remove undocumented `change` attribute from ngSwitch

BREAKING CHANGE:

Ever since 0df93fd, tagged in v1.0.0rc1, the ngSwitch directive has had an undocumented `change`
attribute, used for evaluating a scope expression when the switch value changes.

While it's unlikely, applications which may be using this feature should work around the removal
by adding a custom directive which will perform the eval instead. Directive controllers are
re-instantiated when being transcluded, so by putting the attribute on each item that you want
to be notified of a change to, you can more or less emulate the old behaviour.

Example:

```js
angular.module("switchChangeWorkaround", []).
  directive("onSwitchChanged", function() {
    return {
      linke: function($scope, $attrs) {
        $scope.$parent.$eval($attrs.change);
      }
    };
  });
```

```html
<div ng-switch="switcher">
  <div ng-switch-when="a" on-switch-changed="doSomethingInParentScope()"></div>
  <div ng-switch-when="b" on-switch-changed="doSomethingInParentScope()"></div>
</div>
```

Closes #8858
Closes #8822
refactor(ngModel): get rid of revalidate

Since the validation was refactored we can now work out inside
`$commitViewValue()` whether to ignore validation by looking at whether
the input has native validators.

Closes #8856
fix(ngForm): don't clear validity of whole form when removing control

Calling `$$clearControlValidity` on the parent of a nested form caused the parent form
to look like there are no more errors on the nested form even if it still had some
inputs with errors. there is no need to call this method recursively since `$setValidity`
will propagate the new validity state well enough.

Closes #8863
docs(jsdoc): remove `@kind function` for providers

This gets rid of the bizarre "Usage: fooProvider();" which does not really communicate anything useful.

Closes #8809
refactor(indexOf) use Array.prototype.indexOf exclusively

Replace helper functions with the native ES5 method

Closes #8847
test($location): fix use of browserTrigger

You must now pass `keys` to the function in a config object.
This bug in the test became apparent because in newer browsers, arrays
have a function called `keys()` and this was causing browserTrigger to
fail. Previously it was quietly passing this test despite being wrong.
chore(orderby-bp): fix the benchmark code and add jquery support
docs(ngModelController): fix $asyncValidators example

Also fixes a typo (◜௰◝)

Closes #8906
chore(shrink-wrap): update shrinkwrap to latest benchpress
docs(CHANGELOG.md): add breaking change for a9fcb0d0 (v1.2.13)

Closes #8909
docs(ngSwitch): fix priority
docs(ngBlur): explain blur events
docs(interpolate): fix link text
docs(tutorial/step_05): improve formatting of code identifier

Closes #8557
docs(README): fix 'Contribution guidelines' link

The current link leads to a page 'Building and Testing AngularJS'.
This same link is also included in the 'Building AngularJS' section
of the README where it's more relevant.
docs($sce:unsafe): fix link to $sce docs

The second link to Strict Contextual Escaping (SCE) points to a 404.

Closes #8514
docs(docs.css): improve comma spacing in TOC on mobile
fix(numberFilter): format numbers that round to zero as nonnegative

Previously when a negative number was rounded to 0 by the number filter
it would be formated as a negative number.  This means something like
{{ -0.01 | number: 1 }} would output -0.0.  Now it will ouput 0.0
instead.

Closes #8489