test($sce): make ie8 happy

Ref: https://github.com/angular/angular.js/pull/4221#/issuecomment-25515813

Closes #4221
style($qSpec): add semi-colons
style(rootScopeSpec): add semi-colons
fix($compile): ng-attr to support dash separated attribute names
docs($compile): improve explanation of Attributes.$observe

The current comment of Attributes.$observe doesn't state correctly the behavior when the attribute contains no interpolation. Specifically, it states that the observer function will never be invoked if the attribute contains no interpolation. However, the actual behavior in this case is that the observer will be invoked once during the next digest loop.
fix($scope): $evalAsync executes on the right scope

Executes $evalAsync at the scope that the call was made

Closes: #3548
test($sce): ie8 fix for entire file

Ref: https://github.com/angular/angular.js/pull/4221#/issuecomment-25515813

Closes #4221
fix($location): prevent infinite digest error in IE7

Refactored `replacedUrl` to store the new URL on both
`location.replace` and setting `location.href` directly to handle
delays in the actual location value change in IE.

Closes #2802
feat(ngMock.$timeout): remove flushNext method
fix(isArrayLike): correctly handle string primitives

Closes #3356
fix($resource): pass transformed value to both callbacks and promises

Closes #3817
fix($sanitize): sanitize DOCTYPE declarations correctly

HTML to be sanitized that contains a DOCTYPE declaration were causing
the HTML parser to throw an error.  Now the parser correctly removes
the declarations when sanitizing HTML.

Closes #3931
docs(select): clarify usage

The wording seemed confusing and these adjustments seem to capture the intent
with less turbulence.

Closes #4257
docs(tutorial): update examples to show best practices

Closes #4256, #4255, #4254, #4253, #4250, #4092
docs(tutorial): improve wording and consistency
docs($compile): fix param description being displayed as code block

Closes #4187
docs(guide/$location): replace host.com addresses with example.com

The host.com links on this documentation page took you to an ad page of dubious content.
Now changed to example.com, in accordance with RFC 2606

Closes #4206
docs(ngClass): clarify the description

Closes #4220
docs(ngInclude): clarity, formatting

Closes #4222
docs(guide/$location): fix broken example demo

The demo of the hash-bang vs html5-mode deep links was broken since the introduction
of a check for previously bootstrapped elements. See this commit: 3ee744cc63

We fix this problem by applying a null for the injector value of the element of the
at the root of the sub-app.
It also turns out that it was not necessary, and if fact broke the demo, to replace
the $document service for the sub-app.  This was because the $compile service calls
`$document.createElement()`, which doesn't exist on a `div`.
Finally, the bootstrap CSS was limiting the width of the ngAddress bar input box,
which made it difficult to see the changing URLs.