##### SUMMARY
--start-at fails for all tasks following a task where name is blank

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
--start-at flag

##### ANSIBLE VERSION
```
ansible 2.7.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/data01/ansible/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /bin/ansible
  python version = 2.7.5 (default, Nov  6 2016, 00:28:07) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```
ANSIBLE_NOCOWS(/etc/ansible/ansible.cfg) = True
ANSIBLE_SSH_ARGS(/etc/ansible/ansible.cfg) = -o ControlMaster=auto -o ControlPersist=60s
ANSIBLE_SSH_CONTROL_PATH(/etc/ansible/ansible.cfg) = %(directory)s/ansible-ssh-%%h-%%p-%%r
CACHE_PLUGIN(/etc/ansible/ansible.cfg) = jsonfile
CACHE_PLUGIN_CONNECTION(/etc/ansible/ansible.cfg) = /data01/ansible/facts
DEFAULT_ACTION_PLUGIN_PATH(/etc/ansible/ansible.cfg) = [u'/usr/share/ansible/plugins/action']
DEFAULT_BECOME_ASK_PASS(/etc/ansible/ansible.cfg) = True
DEFAULT_BECOME_METHOD(/etc/ansible/ansible.cfg) = su
DEFAULT_BECOME_USER(/etc/ansible/ansible.cfg) = root
DEFAULT_CACHE_PLUGIN_PATH(/etc/ansible/ansible.cfg) = [u'/usr/share/ansible/plugins/cache']
DEFAULT_CALLBACK_PLUGIN_PATH(/etc/ansible/ansible.cfg) = [u'/usr/share/ansible/plugins/callback']
DEFAULT_CONNECTION_PLUGIN_PATH(/etc/ansible/ansible.cfg) = [u'/usr/share/ansible/plugins/connection']
DEFAULT_FILTER_PLUGIN_PATH(/etc/ansible/ansible.cfg) = [u'/usr/share/ansible/plugins/filter']
DEFAULT_FORKS(/etc/ansible/ansible.cfg) = 5
DEFAULT_GATHERING(/etc/ansible/ansible.cfg) = smart
DEFAULT_HOST_LIST(/etc/ansible/ansible.cfg) = [u'/data01/ansible/inventories']
DEFAULT_INVENTORY_PLUGIN_PATH(/etc/ansible/ansible.cfg) = [u'/usr/share/ansible/plugins/inventory']
DEFAULT_LOAD_CALLBACK_PLUGINS(/etc/ansible/ansible.cfg) = True
DEFAULT_LOG_PATH(/etc/ansible/ansible.cfg) = /var/log/ansible.log
DEFAULT_LOOKUP_PLUGIN_PATH(/etc/ansible/ansible.cfg) = [u'/usr/share/ansible/plugins/lookup']
DEFAULT_MANAGED_STR(/etc/ansible/ansible.cfg) = Ansible managed: modified on %Y-%m-%d %H:%M:%S
DEFAULT_MODULE_PATH(/etc/ansible/ansible.cfg) = [u'/data01/ansible/modules']
DEFAULT_POLL_INTERVAL(/etc/ansible/ansible.cfg) = 15
DEFAULT_PRIVATE_KEY_FILE(/etc/ansible/ansible.cfg) = /home/ansible/.ssh/<redacted>
DEFAULT_REMOTE_USER(/etc/ansible/ansible.cfg) = <redacted>
DEFAULT_ROLES_PATH(/etc/ansible/ansible.cfg) = [u'/data01/ansible/roles']
DEFAULT_SCP_IF_SSH(/etc/ansible/ansible.cfg) = True
DEFAULT_STRATEGY_PLUGIN_PATH(/etc/ansible/ansible.cfg) = [u'/usr/share/ansible/plugins/strategy']
DEFAULT_TEST_PLUGIN_PATH(/etc/ansible/ansible.cfg) = [u'/usr/share/ansible/plugins/test']
DEFAULT_TIMEOUT(/etc/ansible/ansible.cfg) = 30
DEFAULT_TRANSPORT(/etc/ansible/ansible.cfg) = smart
DEFAULT_VARS_PLUGIN_PATH(/etc/ansible/ansible.cfg) = [u'/usr/share/ansible/plugins/vars']
DISPLAY_SKIPPED_HOSTS(/etc/ansible/ansible.cfg) = True
ERROR_ON_MISSING_HANDLER(/etc/ansible/ansible.cfg) = True
HOST_KEY_CHECKING(/etc/ansible/ansible.cfg) = False
RETRY_FILES_ENABLED(/etc/ansible/ansible.cfg) = False
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->


##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->
Create 2 named tasks but do not fill in a name for the first task. When the playbook is run with this flag it will fail --start-at="bug : task 2"
<!--- Paste example playbooks or commands between quotes below -->
```
- name:
  debug:
   msg: foo

- name: task 2
  debug:
    msg: bar
```

##### EXPECTED RESULTS
Expect step 1 to be skipped and continue from step 2

```
ansible-playbook 2.7.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/data01/ansible/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /bin/ansible-playbook
  python version = 2.7.5 (default, Nov  6 2016, 00:28:07) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]
Using /etc/ansible/ansible.cfg as config file
SU password: 

PLAYBOOK: test.yml ***************************************************************************************************************
1 plays in test.yml

PLAY [<redacted>] ****************************************************************************************

TASK [bug : task 2] **************************************************************************************************************
task path: roles/bug/tasks/main.yml:5
ok: [<redacted>] => {
    "msg": "bar"
}
META: ran handlers
META: ran handlers

PLAY RECAP ***********************************************************************************************************************
<redacted> : ok=1    changed=0    unreachable=0    failed=0   
```


##### ACTUAL RESULTS
ansible reports a likely bug when failing to find "task 2"
```
ansible-playbook test.yml -e "target=<redacted>" -vvv --start-at="bug : task 2" --step

ansible-playbook 2.7.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/data01/ansible/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /bin/ansible-playbook
  python version = 2.7.5 (default, Nov  6 2016, 00:28:07) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]
Using /etc/ansible/ansible.cfg as config file
SU password: 
Parsed <redacted>, inventory source with host_list plugin

PLAYBOOK: test.yml ***************************************************************************************************************
1 plays in test.yml

PLAY [<redacted>] ****************************************************************************************
ERROR! Unexpected Exception, this is probably a bug: expected string or buffer
the full traceback was:

Traceback (most recent call last):
  File "/bin/ansible-playbook", line 118, in <module>
    exit_code = cli.run()
  File "/usr/lib/python2.7/site-packages/ansible/cli/playbook.py", line 122, in run
    results = pbex.run()
  File "/usr/lib/python2.7/site-packages/ansible/executor/playbook_executor.py", line 156, in run
    result = self._tqm.run(play=play)
  File "/usr/lib/python2.7/site-packages/ansible/executor/task_queue_manager.py", line 263, in run
    start_at_done=self._start_at_done,
  File "/usr/lib/python2.7/site-packages/ansible/executor/play_iterator.py", line 218, in __init__
    if task.name == play_context.start_at_task or fnmatch.fnmatch(task.name, play_context.start_at_task) or \
  File "/usr/lib64/python2.7/fnmatch.py", line 43, in fnmatch
    return fnmatchcase(name, pat)
  File "/usr/lib64/python2.7/fnmatch.py", line 79, in fnmatchcase
    return _cache[pat].match(name) is not None
TypeError: expected string or buffer

```



def __init__(self, blocks):
        self._blocks = blocks[:]
        self.cur_block = 0
        self.cur_regular_task = 0
        self.cur_rescue_task = 0
        self.cur_always_task = 0
        self.cur_dep_chain = None
        self.run_state = PlayIterator.ITERATING_SETUP
        self.fail_state = PlayIterator.FAILED_NONE
        self.pending_setup = False
        self.tasks_child_state = None
        self.rescue_child_state = None
        self.always_child_state = None
        self.did_rescue = False
        self.did_start_at_task = False
    def __repr__(self):
        return "HostState(%r)" % self._blocks
    def __str__(self):
        def _run_state_to_string(n):
            states = ["ITERATING_SETUP", "ITERATING_TASKS", "ITERATING_RESCUE", "ITERATING_ALWAYS", "ITERATING_COMPLETE"]
            try:
                return states[n]
            except IndexError:
                return "UNKNOWN STATE"
        def _failed_state_to_string(n):