feat($route): ability to cancel $routeChangeStart event

Calling `preventDefault()` on a `$routeChangeStart` event will
prevent the route change and also call `preventDefault` on the `$locationChangeStart` event, which prevents the location change as well.

BREAKING CHANGE:

Order of events has changed.
Previously: `$locationChangeStart` -> `$locationChangeSuccess`
  -> `$routeChangeStart` -> `$routeChangeSuccess`

Now: `$locationChangeStart` -> `$routeChangeStart`
  -> `$locationChangeSuccess` ->  -> `$routeChangeSuccess`

Fixes #5581
Closes #5714
Closes #9502
refactor(formController): remove redundant methods from nullFormCtrl
docs(changelog): more release notes for 1.3.0-rc.5
docs(select): fix formatting of and placement of selectAs/trackAs explanation
refact($anchorScroll): use Array.some for better performance
fix($location): use clone of passed search() object

Fixes bug when $location.search() is not returning search part of current url.

Previously, the location's internal search object could be set by passing an object to the search()
method. Subsequent changes to the passed search object would be exposed when requesting the search
object, but those changes would not appear in the composed url.

Now, the object is cloned, so the result of location.search() should match the contents of
location.absUrl(), provided the object returned from location.search() is not changed.

Closes #9445
style(filters) use consistent quote style and strict equality

before change quotes where mixed and one if contained equality operator instead of identity

Closes #9349