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
docs(scope): clean up grammar and improve clarity

Some typos fixed and grammar improved:
- withing -> within
- life-cycle -> life cycle
- extraneous spaces
- grammar mistakes
- missing commas
- reworded unclear statements

Closes #3920
docs(guide/concepts): remove div-clear-tags that break the formatting

Closes #3974
docs(ngModel): provide link for best practices.

Closes #3973
docs(tutorial/step-10): fix incorrect link to step-8 tests

Closes #3972
fix(ngSanitize): sanitizer should not accept <!--> as a valid comment

According to http://validator.w3.org/ , <!--> is not a valid comment
and neither is any comment containing the -- substring.
test($browser): correct false positive in ApplicationSpec.js

Previously, the check that Application should return a new $window and
$document had the arguments reversed in the first call to navigateTo;
thus, the subsequent check of inequality of $window and $document in the
next navigateTo call would always pass.

This corrects the argument order, which makes this test not succeptible
to false positives.
docs(guide/e2e_testing): clarify that .enter searches by ng-model
fix(ngOptions): ignore object properties which start with $
docs($http): explain why $http may not make the request immediately

I came across this issue today and after researching has found out this thread on so:
http://stackoverflow.com/questions/17039998/angular-not-making-http-requests-immediately.

It took me quite sometimes to figure out this so I hope the addition in documentation could save somebody else some times and frustration.
docs($http): add examples when calling $http outside $apply

Closes #3996
docs(ngController): rephrased the description for clarity
docs($browser): add jsdoc tags and fix typo
docs(ngSwitch): fix minor typo

Closes #3993