##### SUMMARY
meta reset_connection ignores the connection variables specified within host or group vars. Therefore connections fail with some connectors.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
`lib/ansible/modules/utilities/helper/meta.py`
`lib/ansible/plugins/connection/vmware_tools.py`

##### ANSIBLE VERSION

```paste below
ansible 2.9.0.dev0
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/user/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/user/PycharmProjects/ansible-2/lib/ansible
  executable location = /home/user/PycharmProjects/ansible-2/bin/ansible
  python version = 3.7.3 (default, Mar 26 2019, 21:43:19) [GCC 8.2.1 20181127]
```

##### CONFIGURATION

##### OS / ENVIRONMENT

ArchLinux


##### STEPS TO REPRODUCE

Trying to use reset_connection with e.g. vmware_tools connector fail as meta does not forward required variables, like ansible does for normal connections.

```yaml
- name: reset connection
  meta: reset_connection
```

##### EXPECTED RESULTS

successfully reconnecting to the vm (e.g. for credential switching)

##### ACTUAL RESULTS

```paste below
ERROR! Unexpected Exception, this is probably a bug: 'No setting was provided for required configuration plugin_type: connection plugin: vmware_tools setting: vmware_host '
the full traceback was:

Traceback (most recent call last):
  File "/home/user/PycharmProjects/ansible-2/lib/ansible/plugins/__init__.py", line 58, in get_option
    option_value = C.config.get_config_value(option, plugin_type=get_plugin_class(self), plugin_name=self._load_name, variables=hostvars)
  File "/home/user/PycharmProjects/ansible-2/lib/ansible/config/manager.py", line 381, in get_config_value
    keys=keys, variables=variables, direct=direct)
  File "/home/user/PycharmProjects/ansible-2/lib/ansible/config/manager.py", line 456, in get_config_value_and_origin
    to_native(_get_entry(plugin_type, plugin_name, config)))
ansible.errors.AnsibleError: No setting was provided for required configuration plugin_type: connection plugin: vmware_tools setting: vmware_host 

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/user/PycharmProjects/ansible-2/bin/ansible-playbook", line 111, in <module>
    exit_code = cli.run()
  File "/home/user/PycharmProjects/ansible-2/lib/ansible/cli/playbook.py", line 121, in run
    results = pbex.run()
  File "/home/user/PycharmProjects/ansible-2/lib/ansible/executor/playbook_executor.py", line 169, in run
    result = self._tqm.run(play=play)
  File "/home/user/PycharmProjects/ansible-2/lib/ansible/executor/task_queue_manager.py", line 239, in run
    play_return = strategy.run(iterator, play_context)
  File "/home/user/PycharmProjects/ansible-2/lib/ansible/plugins/strategy/linear.py", line 263, in run
    results.extend(self._execute_meta(task, play_context, iterator, host))
  File "/home/user/PycharmProjects/ansible-2/lib/ansible/plugins/strategy/__init__.py", line 1068, in _execute_meta
    connection.reset()
  File "/home/user/PycharmProjects/ansible-2/lib/ansible/plugins/connection/vmware_tools.py", line 361, in reset
    self._connect()
  File "/home/user/PycharmProjects/ansible-2/lib/ansible/plugins/connection/vmware_tools.py", line 344, in _connect
    self._establish_connection()
  File "/home/user/PycharmProjects/ansible-2/lib/ansible/plugins/connection/vmware_tools.py", line 286, in _establish_connection
    "host": self.vmware_host,
  File "/home/user/PycharmProjects/ansible-2/lib/ansible/plugins/connection/vmware_tools.py", line 246, in vmware_host
    return self.get_option("vmware_host")
  File "/home/user/PycharmProjects/ansible-2/lib/ansible/plugins/__init__.py", line 60, in get_option
    raise KeyError(to_native(e))
KeyError: 'No setting was provided for required configuration plugin_type: connection plugin: vmware_tools setting: vmware_host '
```

##### Notes
There are currently also other issues that prevent reset_connection from working with the vmware_tools connector, but they are addressed within separate issues and are out of scope for this one. This issue is about the required variables not being passed to connectors by the meta helper, this may be an issue for other connectors, too.

if state == 'awaiting_prompt':
            self.conn._flags['become_prompt'] = True
        elif state == 'awaiting_escalation':
            self.conn._flags['become_success'] = True
        return (b'', b'')
    def test_password_with_prompt(self):
        # test with password prompting enabled
        self.pc.password = None
        self.conn.become.prompt = b'Password:'
        self.conn._examine_output.side_effect = self._password_with_prompt_examine_output
        self.mock_popen_res.stdout.read.side_effect = [b"Password:", b"Success", b""]
        self.mock_popen_res.stderr.read.side_effect = [b""]
        self.mock_selector.select.side_effect = [
            [(SelectorKey(self.mock_popen_res.stdout, 1001, [EVENT_READ], None), EVENT_READ)],
            [(SelectorKey(self.mock_popen_res.stdout, 1001, [EVENT_READ], None), EVENT_READ)],
            [(SelectorKey(self.mock_popen_res.stderr, 1002, [EVENT_READ], None), EVENT_READ),
             (SelectorKey(self.mock_popen_res.stdout, 1001, [EVENT_READ], None), EVENT_READ)],
            []]
        self.mock_selector.get_map.side_effect = lambda: True
        return_code, b_stdout, b_stderr = self.conn._run("ssh", "this is input data")
        assert return_code == 0
        assert b_stdout == b''
        assert b_stderr == b''
        assert self.mock_selector.register.called is True
        assert self.mock_selector.register.call_count == 2
        assert self.conn._send_initial_data.called is True