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
test(matchers.js): make toHaveClass matcher work better for SVG+jQuery
fix(ngAnimate): defer DOM operations for changing classes to postDigest

When ngAnimate is used, it will defer changes to classes until postDigest. Previously,
AngularJS (when ngAnimate is not loaded) would always immediately perform these DOM
operations.

Now, even when the ngAnimate module is not used, if $rootScope is in the midst of a
digest, class manipulation is deferred. This helps reduce jank in browsers such as
IE11.

Closes #8234
Closes #9263
WIP: Fixuppin

Differences between core animate and ngAnimate:

In core, class API promise is resolved immediately if class API invoked outside of digest. In ngAnimate,
it will not be resolved until after the animation is completed. Animation is completed synchronously in
core.

When invoked during a digest, class DOM manipulations will be coalesced together in a fashion which
prevents jank in certain browsers (IE11 & friends). ngAnimate already did this.

BREAKING CHANGE:

Class operations performed by $animate will no longer occur immediately in all cases, so you may not
necessarily depend on a class being present immediately after $animate.addClass(), or a class being
removed immediately following $animate.removeClass().