Don't reset input check status when disabling a check (#1062273)
This changes the behavior of the InputCheck.enabled property so that
setting it to False does not clear the status of the InputCheck.
Disabled checks are removed from the failed_checks generator based on
the value of enabled instead of only the value of the check_status.
This allows a check to be temporaliy disabled and re-enabled without
changing its status, such as in the user spoke where the password match
checks on the password and confirm inputs call one another and use the
enabled property to avoid a loop.
Leaving enabled as a property even though it doesn't really need to be
one so that it can have a docstring explaining the situation.