docs($compile): note template is ignored with element transclusion
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.

BREAKING CHANGE:

The $animate class API will always defer changes until the end of the next digest. This allows ngAnimate
to coalesce class changes which occur over a short period of time into 1 or 2 DOM writes, rather than
many. This prevents jank in browsers such as IE, and is generally a good thing.

If you're finding that your classes are not being immediately applied, be sure to invoke $digest().

Closes #8234
Closes #9263
refactor($compile): use labaled variables to represent nodeType values

This also does some cleanup in $animate
chore(ngAnimate): add TODO messages indicating desire to remove hack
perf($animate): don't join classes before it's necessary in resolveElementClasses

In ngAnimate, we can't do this because the behaviour is exposed via the API. But
in core, we can avoid a bit of work.
perf($animate): access DOM less in resolveElementClasses

Previously we were reading DOM attributes frequently, now we can do it just once.
chore(AngularPublic): remove `$$hasClass` from angular exports

It was previously used for ngAnimate, but is no longer needed
fix(select): make ngOptions support selectAs and trackBy together

This commit implements two functions, "isSelected()" and "getViewValue()"
to properly compute an option's selected state and the model controller's
viewValue respectively. These functions give proper precedence to "track by"
and "select as" parts of the ngOptions comprehension expression, which were
previously inconsistent and incompatible.

Fixes #6564
refactor(select): reduce duplication and reorder functions
fix(select): throw for selectAs and trackBy

trackBy and selectAs have never worked together, and are fundamentally
incompatible since model changes cannot deterministically be
reflected back to the view. This change throws an error to help
developers better understand this scenario.
refactor(ngAnimate): remove unneeded comparison

It was supposed to be removed in 22358cf9c703d67f3cf9eb4899404b09578a5fad, but was not.
feat($location): allow automatic rewriting of links to be disabled

Currently, when the location provider is set to html5 mode, all links
on the page are hijacked and automatically rewritten. While this may be
desirable behavior in some cases (such as using ngRoute), not all cases
where html5 mode are enabled imply the desire for this behavior.

One example would be an application using the
[ui-router](https://github.com/angular-ui/ui-router) library, with some
pages that exist outside of angular. Links that are meant to go through
the router use the `ui-sref` directive, so the rewrite behavior is
unnecessary.

Closes #5487
chore($sniffer): Remove $sniffer.msie & $sniffer.msieDocumentMode

Since msie is now set to document.documentMode, it's not necessary to keep
the documentMode in a separate property.

Also, msie is a variable global to Angular source so there's no need to
replicate it in $sniffer.

Closes gh-9496