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
fix(orderBy): sort by identity if no predicate is given

Closes #5847
Closes #4579
Closes #9403
docs(angular.element): `css()` method does not retrieve computed styles

The jQuery css() getter functionality utilises getComputedStyle() whereas
jqLite only retrieves what is declared inline on an element.

Closes #7599
docs(guide/accessibility): Update documentation
fix($browser): handle async href on url change in <=IE9

Closes #9235
fix($compile): use the correct namespace for transcluded svg elements

This fixes the case when a directive that uses `templateUrl`
is used somewhere in the children
of a transcluding directive like `ng-repeat`.

Fixes #9344
Related to #8808
Closes #9415
fix($browser): don’t use history api when only the hash changes

IE10/11 have the following problem: When changing the url hash
via `history.pushState()` and then reverting the hash via direct
changes to `location.href` (or via a link) does not fire a
`hashchange` nor `popstate` event.

This commit changes the default behavior as follows:
Uses `location.href`/`location.replace` if the new url differs from
the previous url only in the hash fragment or the browser
does not support history API.
Use `history.pushState`/ `history.replaceState` otherwise.

Fixes #9143
Closes #9406
fix(select): use $viewValue instead of $modelValue

Closes #8929
fix($browser): don’t use history api when only the hash changes

Fix jshint error
fix($http): honor application/json response header and parse json primitives

When server responds with Content-Type header set to application/json we now properly parse the response as JSON

Closes #2973
fix($compile): remove comment nodes from templates before asserting single root node

The compiler will no longer throw if a directive template contains comment nodes in addition to a
single root node. If a template contains less than 2 nodes, the nodes are unaltered.

BREAKING CHANGE:

If a template contains directives within comment nodes, and there is more than a single node in the
template, those comment nodes are removed. The impact of this breaking change is expected to be
quite low.

Closes #9212
Closes #9215
fix($browser): don’t use history api when only the hash changes

Fixes a failing test on IE9 caused as a side effect
of 404b95fe30a1bcd1313adafbd0018578d5b21d3d being merged
before 0656484d3e709c5162570b0dd6473b0b6140e5b2.

The test should have been independent on the browser running it
and it is now.

Closes #9423
Closes #9424
feat($location): add support for History API state handling

Adds $location state method allowing to get/set a History API state via
pushState & replaceState methods.

Note that:
- Angular treats states undefined and null as the same; trying to change
one to the other without touching the URL won't do anything. This is necessary
to prevent infinite digest loops when setting the URL to itself in IE<10 in
the HTML5 hash fallback mode.
- The state() method is not compatible with browsers not supporting
the HTML5 History API, e.g. IE 9 or Android < 4.0.

Closes #9027