docs($provide): improve examples and explanations

$provide's example seems awkward. Replace with more real-world example,
using an injected service, where the service defined has a good reason to
be a singleton.

There's quite a lot of confusion around $provide:
http://stackoverflow.com/search?q=angularjs+service+vs+factory
Tests for example at: http://jsbin.com/EMabAv/1/edit?js,output
docs($provide): improve docs and examples further

Improve the "tracking" service example by adding a configuration option.
Get better formatting of the generated code samples using <pre> tags.
Move the detailed explanations into each function's documentation block.
Improve the overview and list the constituent functions by significance.

Closes #4302
refactor(location): $location now uses urlUtils, not RegEx

The location service, and other portions of the application,
were relying on a complicated regular expression to get parts of a URL.
But there is already a private urlUtils provider,
which relies on HTMLAnchorElement to provide this information,
and is suitable for most cases.

In order to make urlUtils more accessible in the absence of DI,
its methods were converted to standalone functions available globally.

The urlUtils.resolve method was renamed urlResolve,
and was refactored to only take 1 argument, url,
and not the 2nd "parse" boolean.
The method now always returns a parsed url.
All places in code which previously wanted a string instead of a parsed
url can now get the value from the href property of the returned object.

Tests were also added to ensure IPv6 addresses were handled correctly.

Closes #3533
Closes #2950
Closes #3249
fix(modules): stop leaking global variables in tests

The routeUtils.js file was declaring a number of functions that were
leaking into other modules such as ngMocks causing tests to pass
incorrectly.

Closes #4360
docs(ngInit): add note on best practices
refactor($animate): avoid checking for transition/animation support during each animation
fix($animate): ensure elapsedTime always considers delay values
fix($animate): cancel any ongoing child animations during move and leave animations
refactor($animate): queue all successive animations to use only one reflow
fix($animate): ensure structural animations skip all child animations even if no animation is present during compile

Closes #3215
chore(ngdocs): improve the side search animation effects
fix($animate): perform internal caching on getComputedStyle to boost the performance of CSS3 transitions/animations

Closes #4011
Closes #4124
docs(guide/controller): use `.controller` syntax

Use the recommended `module.controller` syntax rather than global
functions to define controllers in the examples.
docs(guide/controller): improve guidance and examples

Remove mention of global controller functions
Convert larger examples to runnable demos
Remove mention of pre-1.0 controllers, in particular discussion of
controller inheritance.

TODO: Probably could do with updating to explain the "controller as" syntax
at some point.

Closes: #4373
docs(ngAnimate): fix link to ngClass page

Link was set to ngShow and it should be set to ngClass.
docs(ngAnimate): fix typos

Closes #4375
chore(npm): grunt-contrib-jasmine-node changed name
chore(grunt): grunt-jasmine-node uses different config
docs(tutorial/step02): fix formatting
docs(tutorial/step05): fix formatting, use DI annotations in example code