### Summary

Add preflight checks to `lib/ansible/cli/__init__.py` to ensure that `stdin`, `stdout`, and `stderr` are blocking, and not non-blocking.  The `Display` class cannot handle the non-blocking case, and it's been decided to not attempt work arounds to allow this.

We've experienced this happening in subprocesses where something like `ssh` sets these FDs as non-blocking and doesn't restore them to blocking, causing tracebacks.

### Issue Type

Feature Idea

### Component Name
```
lib/ansible/cli/__init__.py
```
### Additional Information

<!--- Paste example playbooks or commands between quotes below -->
```yaml (paste below)

```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
ask_vault_pass=None, create_new_password=False,
                            auto_prompt=True):
        
        vault_secrets = []
        
        
        
        prompt_formats = {}
        
        
        vault_password_files = vault_password_files or []
        if C.DEFAULT_VAULT_PASSWORD_FILE:
            vault_password_files.append(C.DEFAULT_VAULT_PASSWORD_FILE)
        if create_new_password:
            prompt_formats['prompt'] = ['New vault password (%(vault_id)s): ',
                                        'Confirm new vault password (%(vault_id)s): ']
            
            prompt_formats['prompt_ask_vault_pass'] = ['New Vault password: ',
                                                       'Confirm New Vault password: ']
        else:
            prompt_formats['prompt'] = ['Vault password (%(vault_id)s): ']
            
            prompt_formats['prompt_ask_vault_pass'] = ['Vault password: ']
        vault_ids = CLI.build_vault_ids(vault_ids,
                                        vault_password_files,