docs($log): the documented default log behavior was incorrect

Closes #4953
fix(ngInclude): allow ngInclude to load scripts when jQuery is included

In 1.2, the behavior of ngInclude was modified to use DOM APIs rather than jqLite. This means that
even when jQuery was loaded, ngInclude was not calling into it, and thus scripts were not eval'd
as they had been before. Although the use of ngInclude to eval scripts as a lazy-loading strategy
was never an intentional feature, this patch restores the ability to do so.

Closes #3756
fix($animate): ensure the DOM operation isn't run twice

Depending on the animations placed on ngClass, the DOM operation may
run twice causing a race condition between addClass and removeClass.
Depending on what classes are removed and added via $compile this may
cause all CSS classes to be removed accidentally from the element
being animated.

Closes #4949
fix(ngClass): ensure that ngClass only adds/removes the changed classes

ngClass works by removing all the former classes and then adding all the
new classes to the element during each watch change operation. This may
cause transition animations to never render. The ngClass directive will
now only add and remove the classes that change during each watch operation.

Closes #4960
Closes #4944
refactor($sce): Use $sniffer instead of $document for feature detection.

Also adds `$sniffer.msieDocumentMode` property.

Closes #4931
Closes #5045
fix(ngAnimate): use a fallback CSS property that doesn't break existing styles

The clip property seems to remove the box-shadow property when an absolute
positioned animation is ongoing. This fix changes the property to be border-spacing
which is also very underused. The border-spacing CSS property is only visible
when border-collapse is set to separate.

Closes #4902
Closes #5030
docs(guide/migration): fix typo ngHtmlBind -> ngBindHtml
feat(input): hold listener during text composition

When composing text in CJKV, intermediate buffer for unfinished text should not
be updating the bound scope variables.

Closes #4684
fix($resource): Always return a resource instance when calling class methods on resources.

Previously, calling `MyResource.save(myResourceInstance)`returned
a promise, in contrast to the docs for `$resource`. However,
calling `MyResource.save({name: 'Tobias"})`already correctly
returned a resource instance.

Fixes #4545.
Closes #5061.
fix(ngController): fix issue with ngInclude on the same element

This changes the priority of ngController to 500 so that it takes precedence
over ngInclude.

Closes #4431, #4521
docs(guide/ie): add info about what IE versions are supported

Added text from https://github.com/angular/angular.js/issues/4974

Closes #5070
docs(faq): update compressed and minified file size

Closes #5058
docs(guide/unit-testing): minor style and grammar changes

Closes #5057
chore: use temporary version of grunt-jasmine-node

This should be reverted once https://github.com/jasmine-contrib/grunt-jasmine-node/pull/33 gets merged in the upstream repo.

It fixes the problem where Grunt does not fail the build, even though there are failures.
See https://travis-ci.org/angular/angular.js/builds/14329011#L2366
test(docs): fix the failing specs

Because Grunt was not failing the build, we didn't noticed these failing specs.
fix($compile): ensure CSS classes are added and removed only when necessary

When $compile interpolates a CSS class attribute expression it will
do so by comparing the CSS class value already present on the element.
This may lead to unexpected results when dealing with ngClass values being
added and removed therefore it is best that both compile and ngClass delegate
addClass/removeClass operations to the same block of code.
fix($animate): ensure addClass/removeClass animations do not snap during reflow

Closes #4892
fix($animate): ensure transition animations are unblocked before the dom operation occurs

Transitions are blocked when the base CSS class is added at the start of the animation. This
causes an issue if the followup CSS class contains animatable-styles. Now, once the animation
active state is triggered (when the animation CSS dom operation occurs) the animation itself
will always trigger an animate without a quick jump.

Closes #5014
Closes #4265
fix($animate): ensure keyframe animations are blocked around the reflow

Keyframe animations trigger on the first CSS class and not the second.
This may cause a slight flicker during a stagger animation since the
animation has already started before the stagger delay is considered.
This fix ensures that the animation is blocked until the active animation
starts which allows for staggering animations to take over properly.

Closes #5018
chore($animate): remove unnecessary reflective dereferencing