### 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
display.vvvvv('Reading vault password file: %s' % vault_id_value)
            
            try:
                file_vault_secret = get_file_vault_secret(filename=vault_id_value,
                                                          vault_id=vault_id_name,
                                                          loader=loader)
            except AnsibleError as exc:
                display.warning('Error getting vault password file (%s): %s' % (vault_id_name, to_text(exc)))
                last_exception = exc
                continue
            try:
                file_vault_secret.load()
            except AnsibleError as exc:
                display.warning('Error in vault password file loading (%s): %s' % (vault_id_name, to_text(exc)))
                last_exception = exc
                continue
            found_vault_secret = True
            if vault_id_name:
                vault_secrets.append((vault_id_name, file_vault_secret))
            else:
                vault_secrets.append((C.DEFAULT_VAULT_IDENTITY, file_vault_secret))
            
            loader.set_vault_secrets(vault_secrets)
        
        
        if last_exception and not found_vault_secret:
            raise last_exception
        return vault_secrets
    @staticmethod
    def _get_secret(prompt):