fix(ngModel): test & update correct model when running $validate

If `$validate` is invoked when the model is already invalid, `$validate`
should pass `$$invalidModelValue` to the validators, not `$modelValue`.

Moreover, if `$validate` is invoked and it is found that the invalid model
has become valid, this previously invalid model should be assigned to
`$modelValue`.

Lastly, if `$validate` is invoked and it is found that the model has
become invalid, the previously valid model should be assigned to
`$$invalidModelValue`.

Closes #7836
Closes #7837
test(input): simplified $apply syntax
docs(error/$rootScope/inprog): fix $timeout typo

Closes #8071
fix(parseKeyValue): ignore properties in prototype chain.

Previously, properties (typically functions) in the prototype chain (Object.prototype) would shadow
query parameters, and cause them to be serialized incorrectly.

This CL guards against this by using hasOwnProperty() to ensure that only own properties are a concern.

Closes #8070
Fixes #8068
docs(tutorial/step-9): link to list of filters rather than filterProvider

Closes #8082
fix(input): modify email validation regexp to match rfc1035

Previously, domain parts which began with or ended with a dash, would be accepted as valid. This CL matches Angular's email validation with that of Chromium and Firefox.

Closes #6026
chore(tests): increase timeout for navigation in ng-href tests to avoid timeouts

Previously, the timeout for ng-href tests waiting for the url change after a link
was clicked was only 1000 ms. This was causing some flaky timeouts, so increasing
the wait to 5000 ms.
fix(input): escape forward slash in email regexp

This messed up with syntax coloring and variable hovering in chrome developer tools and made debugging really difficult.

Closes #8096
docs($anchorScroll): update example to use a module
docs($compile): update example to use a module
docs(formDirective): update example to use a module
docs(ngModel): update examples to use modules
docs(ngChange): update example to use a module
docs($document): update example to use a module
docs($http): update example to use a module
docs(ngBind): update examples to use modules
docs(ngSubmit): update example to use a module
docs($window): update example to use a module
docs(ngController): update examples to use modules
docs(filters): update examples to use modules