docs(css_styling_guide): add ng-scope and ng-binding classes

I noticed angular was adding these css classes to elements and believe they
should be listed in the documentation at this page. The ng-scope class is
mentioned in the developer guide, hence the link there, and the ng-binding
class is not mentioned anywhere else in the documentation or the guide that
I found.

Closes #3728
docs(booleanAttrs): improve parameter docs for boolean attributes

Closes #3724
docs(tutorial): clarify use of inject() in step 9

Closes #3718
docs(tutorial): fix markup for tutorial_04.png diagram
docs(tutorial): fix markup for tutorial_03.png diagram

Closes #3707
docs(mock.inject): document underscore wrapping syntax

Add a summary describing the ignored underscore syntax sugar helper,
with a simple use case example.

Closes #3621
refactor($animate): use CSS3 transition/animation events instead of $timeouts to track ongoing animations

Closes #3629
Closes #3874
fix(ngScenario): provide event parameters as object

BREAKING CHANGE: browserTrigger now uses an eventData object instead of direct parameters for mouse events.
To migrate, place the `keys`,`x` and `y` parameters inside of an object and place that as the third parameter
for the browserTrigger function.
fix(ngAnimate): check elapsedTime on current event

onAnimationProgress now checks the event's elapsedTime property before
checking the originalEvent.elapsedTime property.
Use browserTrigger with elapsedTime parameter to trigger animation events
fix(browserTrigger): do not use document.createEvent method

Firefox 23 has deprecated the use of createEvent for transition and
animation events.  We must now use `new TransitionEvent()` and
`new AnimationEvent()` if they are available.

But of course IE doesn't support this format correctly so we must wrap
the attempt in a try block and revert to document.createEvent if necessary..
docs(mock.inject): fix typo
docs(README): add dashboard link

Closes #3934
docs(forms.ngdoc): fix spacing in example

Closes #3930
docs(angular.copy): clarify corner cases

The behaviour when null or undefined was passed was not clear.
The exception thrown when source == destination was not documented.

Closes #3946
docs($q): clarify what happens when rejected

Closes #3943
docs(Attributes): add missing documentation for $observe method

- Add proper ngdoc annotations to existing $observe documentation
- Add link to directive guide for usage example of $observe
- Add note about $observe function parameter signature

Closes #3957
fix(ngdoc.js): update default directive restrict to 'A'
docs(ng.directives): add correct @restrict for all ng directives
docs(ngChange): remove wrong @restrict and add missing @param
style(ngForm): simplify restrict difference between form and ngForm