docs(ngForm): fix grammar and improve explanation

Closes #4050
docs(guide/i18n): change non-existent de-ge to de-de

The de-ge locale does not exist

Closes #4053
docs(guide/services): explain services in plain language

See the discussion at http://docs.angularjs.org/guide/dev_guide.services.understanding_services#comment-1002821035

Closes #4055
docs(guide/services): rewording of explanation
docs(FAQ): update jQuery compatibility
docs($exceptionHandler): add an example of overriding the handler

Closes #3816
doc(ngApp): fix grammar
docs(input): fix spelling error and reword for clarity
docs(ngModelController): clarify issue with isolated scope directive

See #4043
docs(ngCloak): fix grammar, clarity

Closes #4076
docs(ngClass): fix grammar

Closes #4061
fix(ngView): IE8 regression due to expando on non-element nodes

This fixes the "TypeError: Object doesn't support this property or method" error on IE8,
when view templates contain leading white-space.

Closes #3971
fix(ngInclude): don't break attribute bindings on ngInclude-ed element

BREAKING CHANGE: ngInclude's priority is now set to 1000

It's quite rare for anyone to depend on explicity directive priority,
but if a custom directive that needs to run before ngInclude exists,
it should have its priority checked and adjusted if needed.

Closes #3793
chore(sce): remove unused function
fix(ng-bind-html): watch string value instead of wrapper

Ref: https://github.com/angular/angular.js/pull/4045

I have this sinking feeling that support this use case sort of
encourages binding to function that blindly trust some html.  For now,
I'm fixing the issue while I think about the use cases some more.

In the case of a function that performs any non-trivial work before
wrapping the value (e.g. the showdown filter in issue #3980, or the
binding to a simply wrapper function in issue #3932 if it did anything
meaty), this fix makes it "work" - but performance is going to suck -
you should bind to some other thing on scope that watches the actual
source and adjusts itself when that changes (e.g. the showdown filter.)
For the case of the wrapper in #3932, if one isn't performing
sanitization or some such thing - then you the developer has insight
into why that value is safe in that particular context - and it should
be available simply by name and not as a result of a function taking any
arbitrary input to make auditing of security a little saner.

Closes #3932, #3980
test(ng-non-bindable): test sibling bindings

Ref: https://github.com/angular/angular.dart/blob/master/test/directives/ng_non_bindable_spec.dart
refactor(angular.toJson): use charAt instead of regexp

Provides a performance improvement when serializing to JSON strings.

Closes #4093
fix(ngScenario): fix error message description
fix(ngRepeat): correctly track elements even when the collection is initially undefined

Previously if the collection model was set to undefined on the first digest,
the repeater would get confused and not use the correct tracking function
for associating model with dom elements in the repeater.

Closes #4145
Closes #3964
docs(ngShowHide): improve clarity

Closes #4099