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