revert: fix(input): always pass in the model value to `ctrl.$isEmpty`

This commit tried to create consistency by ensuring that `$isEmpty` is not
called on both model and view values but it chose to only use `$modelValue`,
which is not actually correct.

`$isEmpty` is designed to compute whether the `$viewValue` is empty. In
practice this is the only part of the parse/format system that the
directive has control over. We can't rely on the `$modelValue` being in
any particular format since other directives can add in their own formatters
and parsers to completely change this.

(reverted from commit 3e51b84bc19f7e6acc61cb536ddcdbfed307c831)
fix(input[date]): do not use `$isEmpty` to check the model validity
fix(input): set ngTrueValue on required checkbox

Fixes #5164