refact(angular.bind): use `concat()` rather than duplicating code

Closes #4200
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
feat($anchorScroll): add support for scrolling independently of `$location.hash()`

Add an optional argument to `$anchorScroll()` to enable scrolling to an
anchor element different than that related to the current value of
`$location.hash()`. If the argument is omitted, the value of
`$location.hash()` will be used instead.

Closes #4568