fix($injector): allow a constructor function to return a function

This change makes `$injector.instantiate` (and thus `$provide.service`) to behave the same as native
`new` operator.
chore(docs): generate header ids for better linking

- generate ids for all headers
- collect defined anchors
- check broken links (even if the page exists, but the anchor/id does not)
docs: correct broken links

This also contains some whitespace corrections by my editor.
fix(csp): fix csp auto-detection and stylesheet injection

When we refactored , we broke the csp mode because the previous implementation
relied on the fact that it was ok to lazy initialize the .csp property, this
is not the case any more.

Besides, we need to know about csp mode during bootstrap and avoid injecting the
stylesheet when csp is active, so I refactored the code to fix both issues.

PR #4411 will follow up on this commit and add more improvements.

Closes #917
Closes #2963
Closes #4394
Closes #4444

BREAKING CHANGE: triggering ngCsp directive via `ng:csp` attribute is not
supported any more. Please use data-ng-csp instead.
revert(validate-commit-msg): fix incorrect comment

Revert 581ec6be7d7e546a1c563906e1877498d7d655a2 since it was not valid.

Closes #3952
docs(ngCsp): pretty-format docs
fix(ngAnimate): fix cancelChildAnimations throwing exception

fix ngAnimate throwing exception in cancelChildAnimations on deletion of
element (ngAnimate's leave decorator) of repeated element when using
ng-include on this element.

Closes #4548
fix: don't inline css in csp mode.

Also add `angular-csp.css` to the resulting build.
chore(Grunt): use the latest Content-Security-Policy header in csp mode
chore(grunt): add jshint tasks
style: make jshint happy
chore(travis): run jshint task on Travis
fix(ngdocs): remove the side search bar

BREAKING CHANGE

The side search bar on the docs page has been removed in favor of the
top search bar.
feat(ngdocs): add forward slash shortcut key for search bar
fix($animate): only cancel class-based animations if the follow-up class contains CSS transition/keyframe animation code

Closes #4463
Closes #3784
fix($animate): ensure animations work properly when the $rootElement is being animated

Closes #4397
Closes #4231
fix(ngView): ensure the new view element is placed after the old view element

Closes #4362
feat(docs): provide index pages for each angular module
chore(ngMocks): shorten the length of the description line to avoid jsHint errors
docs(guide/directive,guide/compiler,): drastically improve