chore(ci): pin sauce connect to v4.3
docs(Scope): clarify naming in the $watch example

Fixes #8254
Closes #8271
docs(ngChange) might not evaluate due to ngPattern

When a pattern is defined for an input field, ngChange is not evaluated
if the input doesn't match the pattern. Only changes to or from matching
patterns evaluate the ngChange expression.

See #7866
docs(ngChange): clarify when the ngChange expression is evaluated

Closes  #7866
docs(tutorial): explain how to modify the port or ip served by `npm start`

A developer working on a remote server will want to change the IP
address which npm start serves on. A developer working on a machine
which is already using port 8000 will want to change the port.

See https://github.com/angular/angular-phonecat/pull/191
fix($parse): correctly assign expressions who's path is undefined and that use brackets notation

Closes #8039
style(AngularPublic): add whitespace to jshint block

Closes #8360
feat(http): allow caching for JSONP requests

Closes #1947
Closes #8356
docs(tutorial): clarify sentence in step 02

Separate two sentences with a period, and clarify the wording by making it less technical: "to the DOM"
vs "to the <body> tag".

Closes #8394
docs(tutorial/step-2): warn reader not to minimise browser that Karma's running on

Closes #8386
docs(dateFilter): fix milliseconds example

Closes #8389
perf(Scope): use remove the need for the extra watch

Instead of using a counter and an extra watch, just schedule the reaction function via .

This gives us the same/similar ordering and coalecsing of updates as counter without the extra
overhead. Also the code is easier to read.

Since interpolation uses watchGroup, this change additionally improves performance of interpolation.

In large table benchmark digest cost went down by 15-20% for interpolation.