docs(ngModelOptions): correct typo

Closes #7335
fix(ngModelOptions): initialize ngModelOptions in prelink

Input controls require `ngModel` which in turn brings in the `ngModelOptions`
but since ngModel does this initialization in the post link function, the
order in which the directives are run is relevant.

Directives are sorted by priority and name but `ngModel`, `input` and `textarea`
have the same priority. It just happens that `textarea` is alphabetically
sorted and so linked before `ngModel` (unlike `input`).

This is a problem since inputs expect `ngModelController.$options`
to exist at post-link time and for `textarea` this has not happened.

This is solved easily by moving the initialization of `ngModel` to the
pre-link function.

Closes #7281
Closes #7292
test(ngModelOptions): fix e2e test focussing
fix(ngModelOptions): enable overriding the default with a debounce of zero

Because of how the logic was set up, a value of `0` was assumed to be the
same as `undefined`, which meant that you couldn't override the default
debounce delay with a value of zero.

For example, the following assigned a debounce delay of 500ms to the `blur`
event.

```
ngModelOptions="{ updateOn: 'default blur', debounce: {'default': 500, 'blur':
0} }"
```

Closes #7205
docs($interpolate): fix bug in example

Closes #7342
docs(directives): fix code lang matching

Closes #7339
docs(tutorial/step-07): fix typo in route pattern

One instance of `/phones/:phoneId` erroneously had a singular version,
`/phone/:phoneId`, which does not match what was actually used in the code.

Closes #7313
docs(tutorial): move bower_components into app folder
chore(travis): run protractor tests with ff28

FirefoxDriver seems to have an issue with FF29 which is breaking a test case, and causing false negatives.

There is an issue opened on protractor regarding this at https://github.com/angular/protractor/issues/784

Closes #7369
docs(minErr): small grammar fix for $compileMinErr ctreq

Closes #7365
docs($rootScope): use unshift to add items to the array at the beginning

Closes #7364
docs(NgMessages): fix up links and headings
docs(directive): fix misspelled HTML class for an alert

Muchas gracias

Closes #7381
docs(Scope): fix typo in a link

Closes #7389
docs(ngCookies): correct arguments in $cookieStore example

Closes #7390
docs(dateFilter): correct example for date 'fullDate filter'

The equivalent expanded example for 'fullDate' is given as 'EEEE, MMMM d,y'
whereas it should be 'EEEE, MMMM d, y'. With added whitespace.

Closes #7350
docs(CONTRIBUTING.md): anchor fix

"Follow our Coding Rules" should link to "#rules" and not "#coding-rules"

Closes #7349
docs(CONTRIBUTING.md): anachor fix

Closes #7294
docs(CONTRIBUTING.md): grammar and link fixes

Fix dev-doc link, grammatical error.

Closes #7275
fix(ngSwitch): properly support case labels with different numbers of transclude fns

Due to a regression introduced several releases ago, the ability for multiple transclude functions
to work correctly changed, as they would break if different case labels had different numbers of
transclude functions.

This CL corrects this by not assuming that previous elements and scope count have the same length.

Fixes #7372
Closes #7373