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
fix($compile): fix nested isolated transclude directives

Closes #1809
Closes #7499
fix(ngIf): ensure that the correct (transcluded) scope is used
fix(ngRepeat): ensure that the correct (transcluded) scope is used
test(ngInclude): check scope of nested isolated transclude
test(ngSwitch): check scope of nested isolated transclude