perf(orderBy): copy array with slice instead of for loop

Use array slice method to copy entire array instead of a for loop
http://jsperf.com/new-array-vs-splice-vs-slice/54

Closes #9942
test(orderBy): add test cases for ordering array-like objects

Closes #10060
docs(guide/compiler): replaced 'locals' with 'scope'

In "Understanding How Scopes Work with Transcluded Directives" section, a text referred to an
obsolete 'locals' instead of 'scope'.

Closes #10018
docs($q): explain what the $q service does in description

Explain what the $q service does in description, instead of origin document.

The original explanation was less accessible to people new to promises and JS in general.

Closes #10056
chore($q): make jscs happy

jscs loves to be happy and does not love trailing whitespace.
fix(ngMock): call $interval callbacks even when invokeApply is false

Make ngMock.$interval behave like ng.$interval

Closes #10032
fix(ngPattern): match behaviour of native HTML pattern attribute

From https://html.spec.whatwg.org/multipage/forms.html#attr-input-pattern

> The compiled pattern regular expression, when matched against a string, must have its start
anchored to the start of the string and its end anchored to the end of the string.

Closes #9881
Closes #9888
test(select): refactor option elements expectations to use `toEqualOption` matcher

By using a new matcher our tests become less brittle with respect to unimportant
extra attributes.
fix(select): ensure the label attribute is updated in Internet Explorer

Only changing the `<option>` text value is not enough to trigger a render
change in IE. We need to explicit update the `label` property too.

Closes #9621
Closes #10042
docs(guide/accessibility): Content updates

Also includes new section on ngMessages
docs(ngAria): Add Usage Details and Examples

Closes #10031
docs(nav): highlight current nav-index-listing

Color the current nav-index-listing item dark red
to make it easier to know where you are.

Closes #9970
Closes #9974
fix($http): don't parse single space responses as JSON

Closes #9907
feat($location): allow to location to be changed during $locationChangeStart

Closes #9607
Closes #9678
fix(minErr): stringify non-JSON compatible objects in error messages

Fix the JSON stringification to output a more meaningful string when an
object cannot be normally converted to a JSON string, such as when the
object contains cyclic references that would cause `JSON.stringify()`
to throw an error.

Closes #10085
fix(ngRepeat): support cyclic object references in error messages

Now that `minErr` can cope with objects that cannot be normally stringified
to JSON, just pass the error arguments straight through without trying to
stringify them first.

Closes #9838
Closes #10065
Closes #10085
fix($rootScope): handle cyclic references in scopes when creating error messages

Use the new private function `stringify` to convert scope values to strings,
since this can cope with cyclic references and other oddities.

Closes #10085
docs(tutorial/step-4): "unknown" option is actually blank

The name 'unknown' doesn't appear as a choice, the new choice is just blank.
Side note: once I choose one of the non-blank options, I no longer see the blank option.

Closes #10079
docs(tutorial/step-5): include sort and filter in json view experiment

Closes #10082
docs($anchorScrollProvider): remove repeated word

Closes #10093