##### SUMMARY
In current `devel`, using the openstack inventory plugin with the parameter `clouds_yaml_path` no longer works.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
lib/ansible/cli/config.py
lib/ansible/plugins/inventory/openstack.py

##### ANSIBLE VERSION
```paste below
$ ansible --version
ansible 2.9.0.dev0
  config file = None
  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
```paste below
$ ansible-config dump --only-changed
ANSIBLE_NOCOWS(env: ANSIBLE_NOCOWS) = True
```

##### OS / ENVIRONMENT
CentOS / Mac OS / control machine


##### STEPS TO REPRODUCE
Use inventory file `openstack.yml` as follows:

(1)
```yaml
plugin: openstack
clouds_yaml_path:
  - private/openstack/clouds.yml
```

that format is the one which has historically worked. It is not the documented expected format.

----

The documentation suggests this would work, but it never has:

(2)
```yaml
plugin: openstack
clouds_yaml_path: private/openstack/clouds.yml
```

##### EXPECTED RESULTS
Generally, I would expect one of those 2 files to be successfully parsed.

Specifically, right now, I would like the 1st of those 2 to be parsed, because that is the only format that works in Ansible 2.8.


##### ACTUAL RESULTS
For inventory file (1)

```
$ ansible-inventory -i private/openstack/openstack.yml --list --export
 [WARNING]:  * Failed to parse /Users/alancoding/Documents/repos/ansible-inventory-file-examples/private/openstack/openstack.yml with auto plugin: Invalid type for configuration
option plugin_type: inventory plugin: openstack setting: clouds_yaml_path : Invalid type provided for "string": ['private/openstack/clouds.yml']

 [WARNING]:  * Failed to parse /Users/alancoding/Documents/repos/ansible-inventory-file-examples/private/openstack/openstack.yml with yaml plugin: Plugin configuration YAML file,
not YAML inventory

 [WARNING]:  * Failed to parse /Users/alancoding/Documents/repos/ansible-inventory-file-examples/private/openstack/openstack.yml with ini plugin: Invalid host pattern 'plugin:'
supplied, ending in ':' is not allowed, this character is reserved to provide a port.

 [WARNING]: Unable to parse /Users/alancoding/Documents/repos/ansible-inventory-file-examples/private/openstack/openstack.yml as an inventory source

 [WARNING]: No inventory was parsed, only implicit localhost is available

{
    "_meta": {
        "hostvars": {}
    },
    "all": {
        "children": [
            "ungrouped"
        ]
    }
}

```

This case errors because of validation introduced in https://github.com/ansible/ansible/pull/58530, ping @bcoca 

From verbose output:

```
 [WARNING]:  * Failed to parse /Users/alancoding/Documents/repos/ansible-inventory-file-examples/private/openstack/openstack.yml with auto plugin: Invalid type for configuration
option plugin_type: inventory plugin: openstack setting: clouds_yaml_path : Invalid type provided for "string": ['private/openstack/clouds.yml']

  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/inventory/manager.py", line 277, in parse_source
    plugin.parse(self._inventory, self._loader, source, cache=cache)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/plugins/inventory/auto.py", line 58, in parse
    plugin.parse(inventory, loader, path, cache=cache)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/plugins/inventory/openstack.py", line 141, in parse
    self._config_data = self._read_config_data(path)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/plugins/inventory/__init__.py", line 229, in _read_config_data
    self.set_options(direct=config)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/plugins/__init__.py", line 75, in set_options
    self._options = C.config.get_plugin_options(get_plugin_class(self), self._load_name, keys=task_keys, variables=var_options, direct=direct)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/config/manager.py", line 348, in get_plugin_options
    options[option] = self.get_config_value(option, plugin_type=plugin_type, plugin_name=name, keys=keys, variables=variables, direct=direct)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/config/manager.py", line 409, in get_config_value
    keys=keys, variables=variables, direct=direct)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/config/manager.py", line 502, in get_config_value_and_origin
    (to_native(_get_entry(plugin_type, plugin_name, config)), to_native(e)))
```

----

For inventory file (2)

```
$ ansible-inventory -i private/openstack/openstack.yml --list --export
 [WARNING]:  * Failed to parse /Users/alancoding/Documents/repos/ansible-inventory-file-examples/private/openstack/openstack.yml with auto plugin: must be str, not list

 [WARNING]:  * Failed to parse /Users/alancoding/Documents/repos/ansible-inventory-file-examples/private/openstack/openstack.yml with yaml plugin: Plugin configuration YAML file,
not YAML inventory

 [WARNING]:  * Failed to parse /Users/alancoding/Documents/repos/ansible-inventory-file-examples/private/openstack/openstack.yml with ini plugin: Invalid host pattern 'plugin:'
supplied, ending in ':' is not allowed, this character is reserved to provide a port.

 [WARNING]: Unable to parse /Users/alancoding/Documents/repos/ansible-inventory-file-examples/private/openstack/openstack.yml as an inventory source

 [WARNING]: No inventory was parsed, only implicit localhost is available

{
    "_meta": {
        "hostvars": {}
    },
    "all": {
        "children": [
            "ungrouped"
        ]
    }
}
```

This fails because the openstack inventory plugin code depends on the input being a list. See:

https://github.com/ansible/ansible/blob/333953117c9e2ff62ebccdbcbb5947271b88ce73/lib/ansible/plugins/inventory/openstack.py#L178-L179

I can confirm that `client_config.CONFIG_FILES` is a list. Thus, the source of this error is trying to add the input value to this list. That requires both to be a list, thus, the error.

From verbose output:

```
 [WARNING]:  * Failed to parse /Users/alancoding/Documents/repos/ansible-inventory-file-examples/private/openstack/openstack.yml with auto plugin: must be str, not list

  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/inventory/manager.py", line 268, in parse_source
    plugin.parse(self._inventory, self._loader, source, cache=cache)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/plugins/inventory/auto.py", line 58, in parse
    plugin.parse(inventory, loader, path, cache=cache)
  File "/Users/alancoding/Documents/repos/ansible/lib/ansible/plugins/inventory/openstack.py", line 183, in parse
    client_config.CONFIG_FILES)

```
type: bool
            default: 'no'
        inventory_hostname:
            description: |
                What to register as the inventory hostname.
                If set to 'uuid' the uuid of the server will be used and a
                group will be created for the server name.
                If set to 'name' the name of the server will be used unless
                there are more than one server with the same name in which
                case the 'uuid' logic will be used.
                Default is to do 'name', which is the opposite of the old
                openstack.py inventory script's option use_hostnames)
            type: string
            choices:
                - name
                - uuid
            default: "name"
        expand_hostvars:
            description: |
                Run extra commands on each host to fill in additional
                information about the host. May interrogate cinder and
                neutron and can be expensive for people with many hosts.
                (Note, the default value of this is opposite from the default
                old openstack.py inventory script's option expand_hostvars)
            type: bool
            default: 'no'
        private:
            description: |
                Use the private interface of each server, if it has one, as
                the host's IP in the inventory. This can be useful if you are