fix(ngModel): do not dirty the input on $commitViewValue if nothing was changed

Calling `$commitViewValue` was was dirtying the input, even if no update to the view
value was made.
For example, `updateOn` triggers and form submit may call `$commitViewValue` even
if the the view value had not changed.

Closes #7457
Closes #7495
docs(tutorial): fix link to bower in step 12

Muchas gracias! \o/

Closes #7507
docs(guide/$location) remove duplicate 'Crawling your app' section

The "Crawling your app" section was duplicated.
I just removed the duplication and moved the section to the 'Caveats' section.

Closes #7244
perf($interpolate): optimize value stringification

previously we stringified numbers via toJson which was expensive, I optimized
the code so that toJson is invoked only if really necessary

Closes #7501
chore(travis): use SauceConnect v4

See https://saucelabs.com/docs/connect
chore(travis): use latest selenium on SL
chore(travis/e2e): update Chrome to v34

See 28ef2637c111d2940d2062c3cc8be29e7984f35a