<!--- 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
Append user to group fails with `FileNotFoundError`

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
user

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.8.5
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/home/ubuntu/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.15+ (default, Oct  7 2019, 17:39:04) [GCC 7.4.0]
```

##### CONFIGURATION
```paste below
ANSIBLE_PIPELINING(/etc/ansible/ansible.cfg) = True
```
`pipelining = False` gives the same error.

##### OS / ENVIRONMENT
* Source OS: Ubuntu 18.04 (installed from http://ppa.launchpad.net/ansible/ansible/ubuntu)
* Target OS: Alpine Linux 3.10.2
* Target Python: Python 3.7.3

User is not part of the `wheel` group.

```sh
# id nv
uid=1000(nv) gid=1000(nv) groups=1000(nv)
```

##### STEPS TO REPRODUCE
```sh
ansible myhost -vvv -m user -a "name=nv groups=wheel append=yes" -e ansible_python_interpreter=/usr/bin/python3 -i hosts.yml -u root
```

##### EXPECTED RESULTS
user `nv` added to group `wheel`.

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

<!--- Paste verbatim command output between quotes -->
```paste below
ansible 2.8.5
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/home/ubuntu/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.15+ (default, Oct  7 2019, 17:39:04) [GCC 7.4.0]
Using /etc/ansible/ansible.cfg as config file
host_list declined parsing /home/ubuntu/ansible-labs/ansible/hosts.yml as it did not pass it's verify_file() method
script declined parsing /home/ubuntu/ansible-labs/ansible/hosts.yml as it did not pass it's verify_file() method
Parsed /home/ubuntu/ansible-labs/ansible/hosts.yml inventory source with yaml plugin
META: ran handlers
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/system/user.py
Pipelining is enabled.
<myhost> ESTABLISH SSH CONNECTION FOR USER: root
<myhost> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="root"' -o ConnectTimeout=10 -o ControlPath=/home/ubuntu/.ansible/cp/a1dce85073 myhost '/bin/sh -c '"'"'/usr/bin/python3 && sleep 0'"'"''
<myhost> (1, '', '<stdin>:18: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module\'s documentation for alternative uses\nTraceback (most recent call last):\n  File "<stdin>", line 114, in <module>\n  File "<stdin>", line 106, in _ansiballz_main\n  File "<stdin>", line 49, in invoke_module\n  File "/usr/lib/python3.7/imp.py", line 234, in load_module\n    return load_source(name, filename, file)\n  File "/usr/lib/python3.7/imp.py", line 169, in load_source\n    module = _exec(spec, sys.modules[name])\n  File "<frozen importlib._bootstrap>", line 630, in _exec\n  File "<frozen importlib._bootstrap_external>", line 728, in exec_module\n  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed\n  File "/tmp/ansible_user_payload_8xr4egvj/__main__.py", line 2962, in <module>\n  File "/tmp/ansible_user_payload_8xr4egvj/__main__.py", line 2901, in main\n  File "/tmp/ansible_user_payload_8xr4egvj/__main__.py", line 2770, in modify_user\n  File "/tmp/ansible_user_payload_8xr4egvj/__main__.py", line 824, in get_groups_set\n  File "/tmp/ansible_user_payload_8xr4egvj/__main__.py", line 891, in user_info\n  File "/tmp/ansible_user_payload_8xr4egvj/__main__.py", line 899, in user_password\nFileNotFoundError: [Errno 2] No such file or directory\n')
<myhost> Failed to connect to the host via ssh: <stdin>:18: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
Traceback (most recent call last):
  File "<stdin>", line 114, in <module>
  File "<stdin>", line 106, in _ansiballz_main
  File "<stdin>", line 49, in invoke_module
  File "/usr/lib/python3.7/imp.py", line 234, in load_module
    return load_source(name, filename, file)
  File "/usr/lib/python3.7/imp.py", line 169, in load_source
    module = _exec(spec, sys.modules[name])
  File "<frozen importlib._bootstrap>", line 630, in _exec
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/tmp/ansible_user_payload_8xr4egvj/__main__.py", line 2962, in <module>
  File "/tmp/ansible_user_payload_8xr4egvj/__main__.py", line 2901, in main
  File "/tmp/ansible_user_payload_8xr4egvj/__main__.py", line 2770, in modify_user
  File "/tmp/ansible_user_payload_8xr4egvj/__main__.py", line 824, in get_groups_set
  File "/tmp/ansible_user_payload_8xr4egvj/__main__.py", line 891, in user_info
  File "/tmp/ansible_user_payload_8xr4egvj/__main__.py", line 899, in user_password
FileNotFoundError: [Errno 2] No such file or directory
myhost | FAILED! => {
    "changed": false,
    "module_stderr": "<stdin>:18: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses\nTraceback (most recent call last):\n  File \"<stdin>\", line 114, in <module>\n  File \"<stdin>\", line 106, in _ansiballz_main\n  File \"<stdin>\", line 49, in invoke_module\n  File \"/usr/lib/python3.7/imp.py\", line 234, in load_module\n    return load_source(name, filename, file)\n  File \"/usr/lib/python3.7/imp.py\", line 169, in load_source\n    module = _exec(spec, sys.modules[name])\n  File \"<frozen importlib._bootstrap>\", line 630, in _exec\n  File \"<frozen importlib._bootstrap_external>\", line 728, in exec_module\n  File \"<frozen importlib._bootstrap>\", line 219, in _call_with_frames_removed\n  File \"/tmp/ansible_user_payload_8xr4egvj/__main__.py\", line 2962, in <module>\n  File \"/tmp/ansible_user_payload_8xr4egvj/__main__.py\", line 2901, in main\n  File \"/tmp/ansible_user_payload_8xr4egvj/__main__.py\", line 2770, in modify_user\n  File \"/tmp/ansible_user_payload_8xr4egvj/__main__.py\", line 824, in get_groups_set\n  File \"/tmp/ansible_user_payload_8xr4egvj/__main__.py\", line 891, in user_info\n  File \"/tmp/ansible_user_payload_8xr4egvj/__main__.py\", line 899, in user_password\nFileNotFoundError: [Errno 2] No such file or directory\n",
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 1
}
```

if not os.path.exists(path):
            if self.skeleton is not None:
                skeleton = self.skeleton
            else:
                skeleton = '/etc/skel'
            if os.path.exists(skeleton):
                try:
                    shutil.copytree(skeleton, path, symlinks=True)
                except OSError as e:
                    self.module.exit_json(failed=True, msg="%s" % to_native(e))
            else:
                try:
                    os.makedirs(path)
                except OSError as e:
                    self.module.exit_json(failed=True, msg="%s" % to_native(e))
            
            if os.path.exists(self.LOGIN_DEFS):
                with open(self.LOGIN_DEFS, 'r') as f:
                    for line in f:
                        m = re.match(r'^UMASK\s+(\d+)$', line)
                        if m:
                            umask = int(m.group(1), 8)
                            mode = 0o777 & ~umask
                            try:
                                os.chmod(path, mode)
                            except OSError as e:
                                self.module.exit_json(failed=True, msg="%s" % to_native(e))
    def chown_homedir(self, uid, gid, path):