fix(ngView): use animation promises ensure that only one leave animation occurs at a time

the tracking depended on a local flag variable, which was susceptible to corruption due to
race conditions.

using promises ensures that the previousLeaveAnimation is nulled out only if it hasn't been
canceled yet.

Closes #9355
Closes #7606
Closes #9374
fix(input): correctly handle invalid model values for `input[date/time/…]`

Similar to `input[number]` Angular will throw if the model value
for a `input[date]` is not a `Date` object.
For `Invalid Date`s (dates whose `getTime()` is `NaN`) `input[date]`
will render an empty string.

Closes #8949
Closes #9375
fix(input): register builtin parsers/formatters before anyone else

Previously, builtin parsers/formatters for e.g. `input[date]`
or `input[number]` were added in the post linking phase to `ngModelController`,
which in most cases was after a custom formatter/parser was registered.

This commit registers builtin parsers/formatters already
in the pre linking phase. With that builtin
parsers run first, and builtin formatters run last.

Closes #9218
Closes #9358
chore(docs): show error 404 without partial failing

We can move the test back into the main describe as it no longer causes an
error message to be logged
docs(changelog.md): update changelog for 1.3.0-rc.4 and 1.2.26
chore(docs): rearrange docs app search elements so close button is not first tab index
docs(guide/accessibility): add sortOrder to get it in the right position in the guide
docs($compile): improve transclusion documentation

Closes #9352
test($compile): add test for alternative syntax to get controllers from ancestors

Because the regex that tests the `require` value will match more than just `^^?`,
it is important to test other common ways to specify a controller requirement
to ensure that a breaking change isn't introduced inadvertently. This adds a test
for `?^^`.

Closes #9389
Closes #9390
docs(CHANGELOG.md): update 1.2.26 release name
fix(form): fix submit prevention

Do not prevent submit when action
attribute equals to an empty string.

Closes #3370
Closes #3776
perf(ngBind): set textContent rather than using element.text()

"Speeds up chrome with ~10% firefox by ~5%"

We don't really see this result in benchmarks (https://www.dropbox.com/s/76wxqbvduade52s/big_table_benchmark_b1ee5396_vs_d580a954.zip?dl=0)
However, it's basically harmless.

Side effects:

Use strict equality check for `undefined` to replace with empty string. Most target browsers will output `undefined` rather than the empty
string if we don't do this. Previously, ngBindTemplate did not perform this check. However the change has been made to make behaviour
consistent across all target browsers (chrome does output the empty string).

Closes #9369
Closes #9396
fix($location): allow 0 in path() and hash()
chore(release): create script to undo a release for given number
Merge remote-tracking branch 'upstream/master' into add-offset-to-$anchorScroll
Merge branch 'add-offset-to-$anchorScroll' of https://github.com/gkalpak/angular.js into add-offset-to-$anchorScroll