### 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
''' return full ansible version info '''
        if gitinfo:
            
            ansible_version_string = opt_help.version()
        else:
            ansible_version_string = __version__
        ansible_version = ansible_version_string.split()[0]
        ansible_versions = ansible_version.split('.')
        for counter in range(len(ansible_versions)):
            if ansible_versions[counter] == "":
                ansible_versions[counter] = 0
            try:
                ansible_versions[counter] = int(ansible_versions[counter])
            except Exception:
                pass
        if len(ansible_versions) < 3:
            for counter in range(len(ansible_versions), 3):
                ansible_versions.append(0)
        return {'string': ansible_version_string.strip(),
                'full': ansible_version,
                'major': ansible_versions[0],
                'minor': ansible_versions[1],
                'revision': ansible_versions[2]}
    @staticmethod
    def pager(text):