docs(guide/directive): explain how to require multiple controllers

Closes #8524
docs(guide/migration): ngSanitize is out ng core at AngularJS 1.2.21

When using ngBindHTML directive, either ngSanitize or $sce must be used
or this will end in a non-trusted value error.

Closes #8519
docs($http): fix broken markdown link in withCredentials description

Markdown typo in $http config documentation

Closes #7859
docs(http): don't use locale-specific uri for MDN link
docs(tutorial/step-10): add mock image data to spec

Closes #8468
Closes #8535
revert chore(Scope): remove deregisterNotifier feature for $watch

This reverts commit d2f8f25af2c078c971c7223a8894a01e0595cd20.

Closes #8542
revert perf(Scope): remove the need for the extra watch in $watchGroup

This reverts commit 28540c804a1b2e4dd3328b3caca1391c696da1ca.
fix(Scope): add deregisterNotifier to oneTimeLiteralWatch signature

A reverted commit removed deregisterNotifier from the arguments that would be passed
to a watcherFn.
docs(guide): correct links to unit testing guides

Closes #8548
fix($compile): make '='-bindings NaN-aware

Update parent and child scopes correctly when a '='-binding changes from a NaN value.

TBR by angular-core

Closes #8553
Closes #8554
chore(package.json): update to dgeni-packages 0.9.7
test(docsAppE2E): tighten CSS selector to only find one element
test(docsAppE2E): check that param defaults are shown in docs

Closes https://github.com/angular/dgeni-packages/pull/58
fix(jqLite): allow `triggerHandler()` to accept custom event

In some scenarios you want to be able to specify properties on the event
that is passed to the event handler. JQuery does this by overloading the
first parameter (`eventName`). If it is an object with a `type` property
then we assume that it must be a custom event.

In this case the custom event must provide the `type` property which is
the name of the event to be triggered.  `triggerHandler` will continue to
provide dummy default functions for `preventDefault()`, `isDefaultPrevented()`
and `stopPropagation()` but you may override these with your own versions
in your custom object if you wish.

In addition the commit provides some performance and memory usage
improvements by only creating objects and doing work that is necessary.

This commit also renames the parameters inline with jQuery.

Closes #8469
feat($parse): allow for assignments in ternary operator branches

Closes #8512
Closes #8484
CLoses #5434
docs(CHANGELOG.md): add changelog for v1.3.0-beta.18 and v1.2.22

Closes #8581
docs(CHANGELOG.md): fix typo, it's 1.2.22 not 1.2.2!

Whoops!
chore(doc-gen): move e2e tests into docs folder

These tests didn't really fit in the test folder as the docs app is mostly
a separate entity from the AngularJS codebase.
docs(guide/e2e-testing): correct link to protractor's getting started

angular/protractor@fcd973b#diff-f3b56000093113bd3bfb6c9c05e7e945 splits the overview doc into
multiple files, and removes overview.md from the repository entirely, making the current link a 404.

This CL points the link to the new getting-started document rather than the overview, and avoids
linking to a missing document.

Closes #8595
feat(ngRoute): add method for changing url params

Add a $route#updateParams method for changing the current route
parameters without having to build a URL and call $location#path.
Useful for apps with a structure involving programmatically moving
between pages on the current route, but with different :param
values.

Properties in the object passed to $route.updateParams() will be
added to the location as queryParams if not contained within the
route's path definition.