docs(guide/Forms): clarify ngModel behavior for validation

Bueno!

Closes #9866
fix(ngRoute): allow proto inherited properties in route params object

copy route params with angular.copy before using angular.extend which looks only for enumerable own
properties

Closes #8181
Closes #9731
style(routeSpec.js): make jshint happy
docs(ngModelController): remove bogus @param fields
docs(ngModelController): add $name property
docs(ngValue): clarify the limitations of ngValue and option elements
docs(input): replace dateTimeLocal by datetime-local

Fixes #9856
Closes #9870
docs($route): replace comma with "and"

Remove a comma and replace with "and" on line 444

Closes #9889
docs(guide/scope): describe watch depths

Describe and visualize the three watch strategies: By reference, by collection items, and by value.

Closes #9388
chore(.gitignore): ignore IntelliJ IDEA module files

Ignore IntelliJ IDEA modules files in the git repository

Closes #5273
chore(ci): update protractor to version 1.4.0
docs(tutorial/step_05): explain need for $httpBackend.flush in tests

There is an excellent explanation for the need for this in the documentation that may be helpful to
tutorial users, so I added a link to it.

Closes #9919
docs(tutorial/step_12): small change to overview

The bullet points at the beginning of the article were a little hard to understand because they
didn't follow the grammatical form of the preceding articles. I hope these small modifications make
it a little easier for someone else to read.

Closes #9922
docs(tutorial/step_12): added 'see phone-detail change'

This one caught me out for a while because, despite the note underneath, I didn't notice the addition
of <div class="phone-images"> and it's repeater until later.

Closes #9924
feat(ngMock): decorator that adds Scope#$countChildScopes and Scope#$countWatchers

When writing tests it's often useful to check the number of child scopes
or watchers within the current current scope subtree. Common use-case for advanced
directives is to test that the directive is properly cleaning up after itself. These
new methods simplify writing assertions that verify that child scopes were properly
destroyed or that watchers were deregistered.

Closes #9926
Closes #9871
docs(guide/Running in Production): ng-strict-di

Adding note about Strict DI mode.

Closes #9908
fix($compile): do not rebind parent bound transclude functions

The `$compile` public API documentation indicates that
a transclude function may be passed as a second parameter, but
it was not clear that this is **not** the same function that is given
to directive link functions as the `transcludeFn` parameter.

We would like to be able to pass in a transclude function the public
linking function that is returned from `$compile` if we wish to, for
example, use lazy compilation inside a directive.

Doing so, however, highlighted two bugs:

* First, the transclude function would get rebound, incorrectly, changing
its scope from its original binding.
* Second, the `containingScope` would not be updated and the wrong
`$parent` would be assigned to the `transcludedScope` resulting in a
memory leak.

This patch fixes both of these issues.

It also converts various private optional positional parameters on `publicLinkFn`
into an `options` parameter, which is an object hash. The new `options`
parameter is documented as part of the public API.

Thanks to @lgalfaso, @tbosch, and @petebacondarwin.

Closes #9413
test($compile): use `ngMock.Scope.$countChildScopes()`
feat(ngAria): announce ngMessages with aria-live

By including the `ngAria` module, `ngMessages` will automatically include the aria-live
attribute with an assertive voice, allowing validation messages to be spoken throuhg a
screenreader.

Closes #9834
docs(guide/accessibility): Add in-depth guide

Closes #9930