refactor($sce): don't depend on $document

The $sce dependency on $document was added in 64241a5 because it was thought
it's not possible to easiy use the msie variable in this module. This was
changed in 45252c3, though so it's no longer needed to depend on $document.

Closes #9671
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