### Summary

Add preflight checks to `lib/ansible/cli/__init__.py` for both the local locale and the fsencoding to ensure they are `UTF-8`, and abort when they are not.

We implicitly require this now, but have never strictly enforced it. Due to using `pathlib` in more places, to avoid undefined behavior in our codebase, due to the utf-8 expectation, check this early and fail fast.

### Issue Type

Feature Idea

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

We may also need to evaluate the `C` locale.  I know some users are running ansible from devices with only the `C` locale.

### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
ansible_dir = Path(C.ANSIBLE_HOME).expanduser()
            try:
                ansible_dir.mkdir(mode=0o700)
            except OSError as exc:
                if exc.errno != errno.EEXIST:
                    display.warning(
                        "Failed to create the directory '%s': %s" % (ansible_dir, to_text(exc, errors='surrogate_or_replace'))
                    )
            else:
                display.debug("Created the '%s' directory" % ansible_dir)
            try:
                args = [to_text(a, errors='surrogate_or_strict') for a in args]
            except UnicodeError:
                display.error('Command line args are not in utf-8, unable to continue.  Ansible currently only understands utf-8')
                display.display(u"The full traceback was:\n\n%s" % to_text(traceback.format_exc()))
                exit_code = 6
            else:
                cli = cls(args)
                exit_code = cli.run()
        except AnsibleOptionsError as e:
            cli.parser.print_help()
            display.error(to_text(e), wrap_text=False)
            exit_code = 5
        except AnsibleParserError as e:
            display.error(to_text(e), wrap_text=False)
            exit_code = 4