<!--- Verify first that your issue is not already reported on GitHub -->
<!--- Also test if the latest release and devel branch are affected too -->
<!--- Complete *all* sections as described, this form is processed automatically -->

##### SUMMARY
<!--- Explain the problem briefly below -->
The `collections` keyword does not support templating, contrary to other playbook keywords, such as `module_defaults`.

I am trying to specify the collections list at a single place and then just reference them in every playbook instead of bloating each playbook.

Alternatively, it would be great if there was a configuration variable, e.g. `ANSIBLE_DEFAULT_COLLECTIONS`, for that purpose.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
collections

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.10.0.dev0
  config file = /home/nikos/Projects/ansible-demo/ansible.cfg
  configured module search path = ['/home/nikos/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/nikos/.local/lib/python3.8/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.8.1 (default, Jan 22 2020, 06:38:00) [GCC 9.2.0]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
none
```

##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->

<!--- Paste example playbooks or commands between quotes below -->
`play1.yml`
```yaml
---
- hosts: localhost
  gather_facts: no
  tags: qqq
  tasks:
    - set_fact:
        collections:
          - community.general
```

`play2.yml`
```
---

- hosts: localhost
  collections: "{{ collections }}"
  tasks:
    - debug:
        msg: "{{ list1 | union(list2) }}"
```

`playbook.yml`
```
---

- import_playbook: play1.yml

- import_playbook: play2.yml

```

<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
I would expect the collections list to be resolved.

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->

<!--- Paste verbatim command output between quotes -->
```paste below
[WARNING]: You are running the development version of Ansible. You should only run Ansible from "devel" if you are modifying the Ansible engine, or trying out features under development. This is a rapidly changing source of code and can become unstable at any point.
ansible-playbook 2.10.0.dev0
  config file = /home/nikos/Projects/ansible-demo/ansible.cfg
  configured module search path = ['/home/nikos/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/nikos/.local/lib/python3.8/site-packages/ansible
  executable location = /usr/bin/ansible-playbook
  python version = 3.8.1 (default, Jan 22 2020, 06:38:00) [GCC 9.2.0]
Using /home/nikos/Projects/ansible-demo/ansible.cfg as config file
setting up inventory plugins
host_list declined parsing /home/nikos/Projects/ansible-demo/inventory/inventory.yml as it did not pass its verify_file() method
script declined parsing /home/nikos/Projects/ansible-demo/inventory/inventory.yml as it did not pass its verify_file() method
Parsed /home/nikos/Projects/ansible-demo/inventory/inventory.yml inventory source with yaml plugin
ERROR! Unexpected Exception, this is probably a bug: 'AnsibleUnicode' object has no attribute 'append'
the full traceback was:

Traceback (most recent call last):
  File "/usr/bin/ansible-playbook", line 123, in <module>
    exit_code = cli.run()
  File "/home/nikos/.local/lib/python3.8/site-packages/ansible/cli/playbook.py", line 127, in run
    results = pbex.run()
  File "/home/nikos/.local/lib/python3.8/site-packages/ansible/executor/playbook_executor.py", line 91, in run
    pb = Playbook.load(playbook_path, variable_manager=self._variable_manager, loader=self._loader)
  File "/home/nikos/.local/lib/python3.8/site-packages/ansible/playbook/__init__.py", line 51, in load
    pb._load_playbook_data(file_name=file_name, variable_manager=variable_manager)
  File "/home/nikos/.local/lib/python3.8/site-packages/ansible/playbook/__init__.py", line 96, in _load_playbook_data
    pb = PlaybookInclude.load(entry, basedir=self._basedir, variable_manager=variable_manager, loader=self._loader)
  File "/home/nikos/.local/lib/python3.8/site-packages/ansible/playbook/playbook_include.py", line 42, in load
    return PlaybookInclude().load_data(ds=data, basedir=basedir, variable_manager=variable_manager, loader=loader)
  File "/home/nikos/.local/lib/python3.8/site-packages/ansible/playbook/playbook_include.py", line 72, in load_data
    pb._load_playbook_data(file_name=file_name, variable_manager=variable_manager, vars=self.vars.copy())
  File "/home/nikos/.local/lib/python3.8/site-packages/ansible/playbook/__init__.py", line 103, in _load_playbook_data
    entry_obj = Play.load(entry, variable_manager=variable_manager, loader=self._loader, vars=vars)
  File "/home/nikos/.local/lib/python3.8/site-packages/ansible/playbook/play.py", line 116, in load
    return p.load_data(data, variable_manager=variable_manager, loader=loader)
  File "/home/nikos/.local/lib/python3.8/site-packages/ansible/playbook/base.py", line 235, in load_data
    self._attributes[target_name] = method(name, ds[name])
  File "/home/nikos/.local/lib/python3.8/site-packages/ansible/playbook/collectionsearch.py", line 44, in _load_collections
    _ensure_default_collection(collection_list=ds)
  File "/home/nikos/.local/lib/python3.8/site-packages/ansible/playbook/collectionsearch.py", line 31, in _ensure_default_collection
    collection_list.append('ansible.legacy')
AttributeError: 'AnsibleUnicode' object has no attribute 'append'

```
#
#
#
#
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
import os
from units.compat import unittest
from units.compat.mock import MagicMock
from units.mock.loader import DictDataLoader
from ansible import errors
from ansible.playbook.block import Block
from ansible.playbook.handler import Handler
from ansible.playbook.task import Task
from ansible.playbook.task_include import TaskInclude
from ansible.playbook.role.include import RoleInclude
from ansible.playbook import helpers
class MixinForMocks(object):