style(*): enforce spaces after keywords, add spaces

Closes #9677
docs(error/dupes): Little fix in explanation text.

Little fix in docs/content/error/ngRepeat/dupes.ngdoc.

Closes #9673
docs(tutorial/step-2): add missing span elements

In Lession 1 template has phone names within `span` element, while in
lession 2 the name is directly within the wrapper `div`

Closes #9670
docs(angular.extend): explanation of deep copy.

It is very common to see many developers confused about it.

Closes #9672
docs(guide/directive): clarify directive matching example

Closes #9311
style(*): disallow space after object keys, other rules

add `disallowSpaceAfterObjectKeys` and associated changes.
add `disallowMixedSpacesAndTabs` (no files changed)
add `disallowMultipleLineStrings` (no files changed)

Closes #9679
fix($rootScope.$on) check listener existense while deregistering

Check that listener is still present in $$listeners before decrease
$$listenerCount. It fixes problem with incorrect $$listenerCount after
call deregistering function multiple times.

Closes #9666
Closes #9667
chore(grunt): do not rewrite gif urls
docs(guide/forms): add ✨ animated gifs ✨
chore(docs): copy the correct docs assets

The docs images had been duplicated in

```
docs/img/
```

and

```
docs/app/assets/img
```

This commit fixes the gulp build to use the doc images from `docs/img` and
removes the duplocates from `docs/app/assets/img`

Closes #9655
refact(Angular.js) remove unused functions

This removes the functions size() and isLeafNode().

Closes #9682
docs(guide/introduction): remove ambiguous "code-behind" jargon

This commit tries to remove the jargon and explain in plain English what
it means to add "code-behind" via a directive.

Closes #9684
chore(jscs): alphabetize jscs rules
style(*): add disallowTrailingComma rule for objects and arrays

Closes #9685
style(*): add validateParameterSeparator rule to jscs

Closes #9685
style(*): add disallowSpacesInsideParentheses rule to jscs

Closes #9685
docs(tutorial/step-7) - correct a url

Closes #9688
docs(tutorial/step-11): remove excess words

Closes #9690
fix(ngMock): $httpBackend should match data containing Date objects correctly

If a response or expectation contained a date object then `$httpBackend.expect`
was not matching correctly.

This commit encodes then decodes the object being matched to ensure consistency.

Closes #5127
docs(guide/location): fix a typo

Closes #9693