feat(ngModelOptions): add allowInvalid option

This option allows to write invalid values to the model instead of having them become undefined.

Closes #8290

@matsko is right. there is no bug in master and the funny thing is that this code already supported updating the model before async validators are complete without me even meaning it to do so. I agree with @tbosch that it makes sense to leave it as it is since it makes sense no to wait for async validators in case we allow invalid values. (and now we also have the test to show that it works)