fix(ngModel): revalidate the model when min/max expression values change for number inputs

As of this fix if the max or min value is changed via scope or by another ngModel
then it will trigger the model containing the min/max attributes to revalidate itself.

Closes #2404
fix(ngModel): consider ngMin/ngMax values when validating number input types

With this fix ngModel will treat ngMin as a min error and ngMax as a max error.
This also means that when either of these two values is changed then ngModel will
revaliate itself.
fix(ngModel): revalidate the model when min/max expression values change for date inputs

Closes #6755
fix(ngModel): properly parse min/max date values as strings for date inputs

Due to the nature of how date objects are rendered when JSON.stringify
is called, the resulting string contains two sets of quotes surrounding
it. This commit fixes that issue.

Closes #6755
test(ngModel): add missing tests for ngMin/ngMax for date inputs