##### SUMMARY
Running ansible with `--limit a,` or `--limit a,,b` or `--limit ,` leads to (when `-vvv` is added)
```
ERROR! Unexpected Exception, this is probably a bug: string index out of range
the full traceback was:

Traceback (most recent call last):
  File ".../ansible/bin/ansible-playbook", line 123, in <module>
    exit_code = cli.run()
  File ".../ansible/lib/ansible/cli/playbook.py", line 116, in run
    CLI.get_host_list(inventory, context.CLIARGS['subset'])
  File ".../ansible/lib/ansible/cli/__init__.py", line 487, in get_host_list
    inventory.subset(subset)
  File ".../ansible/lib/ansible/inventory/manager.py", line 614, in subset
    if x[0] == "@":
IndexError: string index out of range
ERROR! Unexpected Exception, this is probably a bug: string index out of range
to see the full traceback, use -vvv
```

##### ISSUE TYPE
- Bug Report

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

##### ANSIBLE VERSION
```
2.9.0
```
Also happens with `devel`, and potentially older ansible versions.

##### STEPS TO REPRODUCE
Run `ansible-playbook playbook.yml --limit a,` for an existing playbook `playbook.yml` (doesn't matter what it actually does, and also does not matter whether you use `a` or a real host name). Same result with `--limit a,,b` or similar expressions where `.split(',')` will lead to an empty string in the resulting list.

##### EXPECTED RESULTS
Ansible complaining about syntax, or simply ignoring the trailing comma / empty parts of the `.split(',')`.

##### ACTUAL RESULTS
```
ERROR! Unexpected Exception, this is probably a bug: string index out of range
to see the full traceback, use -vvv
```

return self._inventory.groups
    @property
    def hosts(self):
        return self._inventory.hosts
    def add_host(self, host, group=None, port=None):
        return self._inventory.add_host(host, group, port)
    def add_group(self, group):
        return self._inventory.add_group(group)
    def get_groups_dict(self):
        return self._inventory.get_groups_dict()
    def reconcile_inventory(self):
        self.clear_caches()
        return self._inventory.reconcile_inventory()
    def get_host(self, hostname):
        return self._inventory.get_host(hostname)
    def _fetch_inventory_plugins(self):
        ''' sets up loaded inventory plugins for usage '''
        display.vvvv('setting up inventory plugins')
        plugins = []
        for name in C.INVENTORY_ENABLED:
            plugin = inventory_loader.get(name)
            if plugin:
                plugins.append(plugin)
            else:
                display.warning('Failed to load inventory plugin, skipping %s' % name)
        if not plugins:
            raise AnsibleError("No inventory plugins available to generate inventory, make sure you have at least one whitelisted.")
        return plugins
    def parse_sources(self, cache=False):