docs(CHANGELOG.md): add breaking change from 5f3f25a1

5f3f25a1 included a breaking change which was not documented, which is that the return value of directive
constructors is ignored. The reason they are ignored is to ensure that the correct object is bound to when
binding properties to the controller. It may be possible to come up with a better solution which informs
the developer that what they are doing is wrong, rather than just breaking instead.

Closes #8876
Closes #8882
refactor(ngRepeat): specify explicit `false` for cloneNode deepClone parameter

This should provide a slight compat improvement for old versions of Opera, which did not treat the
`false` as the default value.

There is no test for this fix as Opera 11 is not a browser which runs on the CI servers.

Closes #8883
Closes #8885
docs($compile): clarify linking when there are `templateUrl` directives

Closes #8877
Closes #8631
fix($location): set `baseHref` in mock browser to `/`

Set the default value for the base tag in the mock browser to `/`,
as we now always require a base tag to be present for html5 mode.

Fixes #8866
Closes #8889
docs(errors): fix base href in $location:nobase error page
fix(input): check `scope.$$phase` only on `$rootScope`
fix(ngEventDirs): check `scope.$$phase` only on `$rootScope`

Closes #8891, #8849
style(ngModel): fix spacing
docs(guide/providers): fix grammar and punctuation
docs(changelog): fix inline formatting
docs($rootScope): document scope properties
docs(ngRepeat): update step_02.ngdoc with challenge

Add a simple task for the user to better understand ng-repeat.

Close #8757
style(ngModel): fix indentation
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