##### SUMMARY
'gather_subset' setting in ansible.cfg and ansible/roles are ignored

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
fact gathering

##### ANSIBLE VERSION
```
ansible 2.8.1
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Oct 30 2018, 23:45:53) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]
```

##### CONFIGURATION
```
ANSIBLE_PIPELINING(/etc/ansible/ansible.cfg) = True
ANSIBLE_SSH_CONTROL_PATH(/etc/ansible/ansible.cfg) = %(directory)s/ans-ssh-%%h-%%p-%%r
ANSIBLE_SSH_RETRIES(/etc/ansible/ansible.cfg) = 1
DEFAULT_CALLBACK_WHITELIST(/etc/ansible/ansible.cfg) = [u'profile_tasks', u'grafana_annotations']
DEFAULT_FORKS(/etc/ansible/ansible.cfg) = 500
DEFAULT_GATHERING(/etc/ansible/ansible.cfg) = smart
DEFAULT_GATHER_SUBSET(/etc/ansible/ansible.cfg) = [u'!hardware', u'!ohai', u'!facter', u'!virtual', u'!network']
DEFAULT_GATHER_TIMEOUT(/etc/ansible/ansible.cfg) = 10
DEFAULT_HOST_LIST(/etc/ansible/ansible.cfg) = [u'/etc/ansible/inventory']
DEFAULT_SCP_IF_SSH(/etc/ansible/ansible.cfg) = True
DEFAULT_TIMEOUT(/etc/ansible/ansible.cfg) = 15
```

##### OS / ENVIRONMENT
```
CentOS Linux release 7.6.1810 (Core)
```


##### STEPS TO REPRODUCE
```
I have the following settings in my ansible.cfg:
...
gathering = smart
gather_subset = min
...

and also tried to set following within my role:
...
- name: 'test fact gahtering'
  setup:
    gather_subset: 'min'
...

but still all facts are gathered during a playbook run.

        "ansible_virtualization_role": "guest", 
        "ansible_virtualization_type": "xen", 
        "gather_subset": [
            "all"

As a workaround I set the default value to 'min' within:
"/usr/lib/python2.7/site-packages/ansible/modules/system/setup.py". 
That works.

def main():
    module = AnsibleModule(
        argument_spec=dict(
            gather_subset=dict(default=["min"], required=False, type='list'),
```

##### EXPECTED RESULTS
gather_subset setting should be loaded from ansible.cfg or within role if set.


##### ACTUAL RESULTS
gather_subset within ansible.cfg and role are ignored and all facts are gathered

```
        "ansible_virtualization_role": "guest", 
        "ansible_virtualization_type": "xen", 
        "gather_subset": [
            "all"
```

'''
        Loads a list of blocks from a list which may be mixed tasks/blocks.
        Bare tasks outside of a block are given an implicit block.
        '''
        try:
            return load_list_of_blocks(ds=ds, play=self, variable_manager=self._variable_manager, loader=self._loader)
        except AssertionError as e:
            raise AnsibleParserError("A malformed block was encountered while loading tasks: %s" % to_native(e), obj=self._ds, orig_exc=e)
    def _load_pre_tasks(self, attr, ds):
        '''
        Loads a list of blocks from a list which may be mixed tasks/blocks.
        Bare tasks outside of a block are given an implicit block.
        '''
        try:
            return load_list_of_blocks(ds=ds, play=self, variable_manager=self._variable_manager, loader=self._loader)
        except AssertionError as e:
            raise AnsibleParserError("A malformed block was encountered while loading pre_tasks", obj=self._ds, orig_exc=e)
    def _load_post_tasks(self, attr, ds):