perf($cacheFactory): skip LRU bookkeeping for caches with unbound capacity

Fixes #6193
Closes #6226
chore(doc-app): ensure only canonical paths get sent to Google Analytics

Before we were simply sending the current location, but multiple URLs map
to the same document.
Now, we use the canonical path of the current document if available and
fall back to the $location path otherwise.
Includes tests!!

Closes #6402
chore(docs-app): re-activate docs-app test tasks

Currently there is only a minimal test spec in place. But this will now
be run as part of the test tasks.
chore(protractor-jenkins-config): don't use `this` inside onPrepare

Closes #6406
docs($animate): change @param to use valid types

`{jQuery/jqLite element}` is not a valid jsdoc type and breaks when being
parsed causing the documentation to look wrong.  This commit changes all
such param tags to use `DOMElement` instead, which is what is used for
similar params in `$compile` and `angular.element`.
docs(ngPluralize): corrected "bounded to" to "bound to"

Closes #6408
style(tests): remove trailing comma in specs

Closes #6241
docs(guide): grammar fix

use of the article, both definite and indefinite, is not optional

Closes #5981
docs($routeProvider): correct "slashs" to "slashes"

Closes #6415
docs(tutorial): referenced e2e-test.bat for Windows users in step 3

Closes #5755
docs($interpolate) fix sample code appearing unformatted

Closes #6418
chore(core): introduce a wrapper for requestAnimationFrame
chore(core): create a wrapper to manage async callbacks
perf($animate): use rAF instead of timeouts to issue animation callbacks
docs(guide/concepts): reference correct module name.

Fixed a mistake, changed invoice to invoice2.

Closes #6438
chore(docs/contribute): add note about serving the docs
feat($parse): support trailing commas in object & array literals

Per ECMAScript 5.1 specification trailing commas are allowed in object and
array literals. All modern browsers as well as IE>8 support this syntax.
This commit adds support for such syntax to Angular expressions.
revert: fix($location): parse query string when path is empty in hashbang mode

This reverts commit cad717b1171affc3d540cea372576c70b0cb2295.

This change causes regressions in existing code and after closer inspection
I realized that it is trying to fix an issue that is should not be considered
a valid issue.

The location service was designed to work against either "hash" part of the
window.location when in the hashbang mode or full url when in the html5 mode.

This change tries to merge the two modes partially, which is not right. One
reason for this is that the search part of window.location can't be modified
while in the hashbang mode (a browser limitation), so with this change part
of the search object should be immutable and read-only which will only cause
more confusion.

Relates to #5964
chore(doc-gen): add debug-dump processor
docs(*): fix jsdoc type expressions

These errors in the docs were preventing some parts of the docs from being
parsed.