##### SUMMARY
A warning message about invalid path seems to be incorrectly emitted when giving `~` (user directory) in the `--playbook-dir` option

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
lib/ansible/cli/inventory.py

##### ANSIBLE VERSION
```paste below
$ ansible --version
ansible 2.10.0.dev0
  config file = /Users/alancoding/Documents/repos/ansible/ansible.cfg
  configured module search path = ['/Users/alancoding/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/alancoding/Documents/repos/ansible/lib/ansible
  executable location = /Users/alancoding/.virtualenvs/ansible3/bin/ansible
  python version = 3.6.5 (default, Apr 25 2018, 14:23:58) [GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.1)]
```

##### CONFIGURATION
Defaults

##### OS / ENVIRONMENT
Mac OS


##### STEPS TO REPRODUCE
In my case:

```
ansible-inventory -i ~/Documents/repos/jlaska-ansible-playbooks/inventories/inventory.ini --list --export --playbook-dir=~/Documents/repos/jlaska-ansible-playbooks/inventories | grep -r "group_one_host_01_should_have_this_var"
```

I don't believe that the specific inventory has anything to do with the error, the directory `~/Documents/repos/jlaska-ansible-playbooks/inventories` is obviously valid.

##### EXPECTED RESULTS
If I run it without `~`, it gives no output to stderr

```
ansible-inventory -i ~/Documents/repos/jlaska-ansible-playbooks/inventories/inventory.ini --list --export --playbook-dir=/Users/alancoding/Documents/repos/jlaska-ansible-playbooks/inventories > /dev/null 
```

So I expect that even when I use `~`


##### ACTUAL RESULTS

```paste below
ansible-inventory -i ~/Documents/repos/jlaska-ansible-playbooks/inventories/inventory.ini --list --export --playbook-dir=~/Documents/repos/jlaska-ansible-playbooks/inventories > /dev/null 
[WARNING]: Ignoring invalid path provided to plugin path: '~/Documents/repos/jlaska-ansible-playbooks/inventories' is not a directory
```

Note that I believe that the playbook directory correctly takes effect here, so it may just be that the warning is in error.

The help text does not give any indication that this should not be allowed.

found when looking at https://github.com/ansible/ansible/pull/65073
pass
        
        if not name.startswith('_'):
            alias_name = '_' + name
            
            if alias_name in pull_cache:
                if not ignore_deprecated and not os.path.islink(pull_cache[alias_name]):
                    
                    display.deprecated('%s is kept for backwards compatibility but usage is discouraged. '  
                                       'The module documentation details page may explain more about this rationale.' % name.lstrip('_'))
                plugin_load_context.plugin_resolved_path = pull_cache[alias_name]
                plugin_load_context.plugin_resolved_name = alias_name
                plugin_load_context.resolved = True
                return plugin_load_context
        
        candidate_fqcr = 'ansible.builtin.{0}'.format(name)
        if '.' not in name and AnsibleCollectionRef.is_valid_fqcr(candidate_fqcr):
            return self._find_fq_plugin(fq_name=candidate_fqcr, extension=suffix, plugin_load_context=plugin_load_context)
        return plugin_load_context.nope('{0} is not eligible for last-chance resolution'.format(name))
    def has_plugin(self, name, collection_list=None):
        ''' Checks if a plugin named name exists '''
        try:
            return self.find_plugin(name, collection_list=collection_list) is not None
        except Exception as ex:
            if isinstance(ex, AnsibleError):
                raise
            
            display.debug('has_plugin error: {0}'.format(to_text(ex)))
    __contains__ = has_plugin
    def _load_module_source(self, name, path):