feat(jqLite): add private jqDocumentComplete function

This helper function can be used to execute a callback only after the
document has completed its loading, i.e. after the `load` event fires
or immediately if the page has already loaded and
`document.readyState === 'complete'`.
feat($anchorScroll): support a configurable vertical scroll offset

Add support for a configurable vertical scroll offset to `$anchorScroll`.

The offset can be defined by a specific number of pixels, a callback function
that returns the number of pixels on demand or a jqLite/JQuery wrapped DOM
element whose height and position are used if it has fixed position.

The offset algorithm takes into account items that are near the bottom of
the page preventing over-zealous offset correction.

Closes #9368
Closes #2070
Closes #9360
chore(docs): apply the anchorScroll offset feature to the docs app

Closes #9360
docs(guide/unit-testing): use whitespace to improve readability

☆.。.：・゜☆ Merci (◜௰◝) ☆.。.：・゜☆

Closes #9572
refactor($interpolate): cleanup switch statement, curlies unnecessary

Closes #9530
fix($parse): stabilize one-time literal expressions correctly

Change `oneTimeLiteralWatchDelegate` to use the last value in the
digest cycle to check if the literal value is stable
chore(jqLite): remove leftover attachEvent/detachEvent from tests
fix($browser): account for IE deserializing history.state on each read

IE 10-11+ deserialize history.state on every read, causing simple comparisons
against history.state always return false. Account for that caching
`history.state` on every hashchange or popstate event.

Also:
1. Prevent firing onUrlChange callbacks twice if both popstate and hashchange
event were fired.
2. Fix the issue of routes sometimes not firing the URL change in all browsers.

Closes #9587
Fixes #9545
refactor($animate): use $animate.$$setClassImmediately to save code
refactor($animate): clean up core $animate code
docs($compile): tiny grammar correction

Closes #9590
refactor($browser): more test coverage around history.state manipulation

Check that pushState is not invoked if $browser.url() and $browser.state()
is passed to $browser.url setter.

Also, a minor refactor in $browser.url code and $browser specs.

Refs #9587
refactor(ngAnimate): remove unused function argument

Closes #9585
test(currencyFilter): fix disambiguous locator warning in e2e tests

The e2e tests for the `currencyFilter` issued the following warnings:
> warning: more than one element found for locator by.binding("amount | currency:"USD$"")
This commit removes the warnings by locating the elements by ID and not by
binding.

Closes #9593
docs(limitTo): fixed incorrect field type

There is no such thing as [type=integer] only number

Closes #9591
docs($httpBackend): add module declaration for best understanding

According with the Issue #9537. This module declaration in the test is very important. When I started to test in angular I copy and paste this code to see how it works, and I get this `module undefined error`, and just after read some blog posts I figure out that this line is essential for testing your module. So, for best understanding of begginers this can be very helpful.

Closes #9563
docs(ngIf): fixes font color change

The single quote causes the color of the font to change in the example, so I changed the text in the example to account for this.

Closes #9599
feat($animate): allow $animate to pass custom styles into animations

$animate now supports an optional parameter which provides CSS styling
which will be provided into the CSS-based animations as well as any
custom animation functions. Once the animation is complete then the
styles will be applied directly to the element. If no animation is
detected or the `ngAnimate` module is not active then the styles
will be applied immediately.

BREAKING CHANGE: staggering animations that use transitions will now
always block the transition from starting (via `transition: 0s none`)
up until the stagger step kicks in. The former behaviour was that the
block was removed as soon as the pending class was added. This fix
allows for styles to be applied in the pending class without causing
an animation to trigger prematurely.
feat($animate): introduce the $animate.animate() method
docs(directive): add an example showing `templateUrl` functions

Related to #2895