docs(ngModel.NgModelController) use `$evalAsync` instead of `$apply` for event handling

Have the apply called safely during events by using `$evalAsync` rather than `$apply`
This will help ensure that an apply for a user directive is not called during a digest cycle.

Closes #9891
docs(guide/Index): add book AngularJS UI Development

Matthias and I wrote a book on AngularJS which might be helpful for Angular developers.

Merci~!

Closes #9971
feat($routeProvider): allow setting caseInsensitiveMatch on the provider

Fixes #6477

Closes #9873
docs($q): remove IE8-specific notice

Closes #10008
refactor($parse): don't use bind-once interceptor for non-bind-once expressions

Side-effects:
  - Logic for allOrNothing watches now lives in $interpolate rather than $parse

Credit to @jbedard for idea to remove $watch interceptors craziness from $interpolate. Even though
it technically didn't actually work, it was worth a shot, and helped clean things up a bit. Go team!

Closes #9958
Closes #9961
docs($q): missing finally notifyCallback API

finally allows for notifyCallback and is missing in the Docs
https://github.com/angular/angular.js/blob/v1.3.2/src/ng/q.js#L288

Closes #10010
docs($controller): mention "controller as" syntax

Closes #10011
docs(guide/expressions): replace curly quotes with straight quotes in code example

REAL QUOTES HAVE CURVES

Closes #10017
docs($route): fix description of the caseInsensitiveMatch property

Closes #10028
docs(guide/expressions): clarify regexp literals usage in expressions

Closes #10026

Closes #10030
refactor($parse): separate tokenizing vs parsing more
Fixes `a.b` and `a .b` generating different getterFns
Fixes `{'': ...}` turning into `{"''": ...}`
Fixes `{.: ...}` parsing as `{'.': ...}` instead of throwing
Fixes #9131
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
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.