##### 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
```

self._test_default_groups("""
            [ungrouped]
            host1
            host2
            host3
            [servers]
            host3
            host4
            host5
            """)
    def test_ini_variables_stringify(self):
        values = ['string', 'no', 'No', 'false', 'FALSE', [], False, 0]
        inventory_content = "host1 "
        inventory_content += ' '.join(['var%s=%s' % (i, to_text(x)) for i, x in enumerate(values)])
        inventory = self._get_inventory(inventory_content)
        variables = inventory.get_host('host1').vars
        for i in range(len(values)):
            if isinstance(values[i], string_types):
                self.assertIsInstance(variables['var%s' % i], string_types)
            else:
                self.assertIsInstance(variables['var%s' % i], type(values[i]))
    @mock.patch('ansible.inventory.manager.unfrackpath', mock_unfrackpath_noop)
    @mock.patch('os.path.exists', lambda x: True)
    @mock.patch('os.access', lambda x, y: True)
    def test_yaml_inventory(self, filename="test.yaml"):