##### SUMMARY

A malformed list item in an included task file yields a cryptic message

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME

lib/ansible/cli/scripts/ansible_cli_stub.py

##### ANSIBLE VERSION

Confirmed as of c888035e
```
ansible 2.10.0.dev0
  config file = None
  configured module search path = ['/usr/share/ansible/plugins/modules']
  ansible python module location = /proj/ansible/ansible/venv/lib/python3.7/site-packages/ansible_base-2.10.0.dev0-py3.7.egg/ansible
  executable location = /proj/ansible/ansible/venv/bin/ansible
  python version = 3.7.7 (default, Mar 11 2020, 11:44:20) [GCC 9.2.1 20191008]
```

##### CONFIGURATION

##### OS / ENVIRONMENT

##### STEPS TO REPRODUCE

* bug.yml
```yaml
---
- oops
```
* pb.yml
```yaml
- hosts: all
  gather_facts: no
  tasks:
  - include_tasks: bug.yml
```

##### EXPECTED RESULTS

```console
$ ansible-playbook -i localhost, -c local pb.yml
ERROR! Traceback (most recent call last):
  File "/proj/ansible/ansible/lib/ansible/playbook/block.py", line 130, in _load_block
    use_handlers=self._use_handlers,
  File "/proj/ansible/ansible/lib/ansible/playbook/helpers.py", line 106, in load_list_of_tasks
    raise AnsibleAssertionError('The ds (%s) should be a dict but was a %s' % (ds, type(ds)))
ansible.errors.AnsibleAssertionError: The ds (['oops']) should be a dict but was a <class 'list'>
```
or something similar, because just _eating_ the `AnsibleParserError` makes tracking down the erroneous list item harder than necessary

##### ACTUAL RESULTS

```console
$ ansible-playbook -i localhost, -c local -vvvvvvvvv pb.yml
ansible-playbook 2.10.0.dev0
  config file = None
  configured module search path = ['/usr/share/ansible/plugins/modules']
  ansible python module location = /proj/ansible/ansible/lib/ansible
  executable location = /proj/ansible/ansible/venv/bin/ansible-playbook
  python version = 3.7.7 (default, Mar 11 2020, 11:44:20) [GCC 9.2.1 20191008]
No config file found; using defaults
setting up inventory plugins
Set default localhost to localhost
Parsed localhost, inventory source with host_list plugin
statically imported: /proj/ansible/ansible/bug.yml
ERROR! A malformed block was encountered while loading a block
```
and the same outcome when run with `ANSIBLE_DEBUG=1` which was especially surprising

```console
$ ANSIBLE_DEBUG=1 ansible-playbook -i localhost, -c local -vvvvvvvvv pb.yml
## snip
 22539 1585707905.71204: Loading BecomeModule 'sudo' from /proj/ansible/ansible/lib/ansible/plugins/become/sudo.py (found_in_cache=False, class_only=True)
 22539 1585707905.71232: Loading data from /proj/ansible/ansible/bug0.yml
 22539 1585707905.71591: in VariableManager get_vars()
 22539 1585707905.71621: done with get_vars()
 22539 1585707905.71634: Loading data from /proj/ansible/ansible/bug00.yml
statically imported: /proj/ansible/ansible/bug.yml
 22539 1585707905.71686: RUNNING CLEANUP
ERROR! A malformed block was encountered while loading a block
```
'''
    This is the base class for all errors raised from Ansible code,
    and can be instantiated with two optional parameters beyond the
    error message to control whether detailed information is displayed
    when the error occurred while parsing a data file of some kind.
    Usage:
        raise AnsibleError('some message here', obj=obj, show_content=True)
    Where "obj" is some subclass of ansible.parsing.yaml.objects.AnsibleBaseYAMLObject,
    which should be returned by the DataLoader() class.
    '''
    def __init__(self, message="", obj=None, show_content=True, suppress_extended_error=False, orig_exc=None):
        super(AnsibleError, self).__init__(message)
        self._show_content = show_content
        self._suppress_extended_error = suppress_extended_error
        self._message = to_native(message)
        self.obj = obj
        if orig_exc:
            self.orig_exc = orig_exc
    @property
    def message(self):