fix($templateRequest): ignore JSON Content-Type header and content

Normally, if there is a Content-Type header with the string "application/json", or else the content
looks sort of JSON-y, $http will attempt to deserialize the JSON into an object. $templateRequest
is intended to request markup, and as such should never attempt to parse JSON, regardless of the
headers or shape of the content.

Closes #5756
Closes #9619
chore(.jshintrc): make jshint happy due to 1bd473e
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
fix(input): $render input even if $modelValue is empty

$render should only be concerned if there is a $viewValue present.
When we check $isEmpty($modelValue), we assume $render is used in
context of a model -> view update. But since it is part of the public
API, it needs to work independent of internal usage.

Fixes #9156