##### SUMMARY

I am creating a system user account for Jenkins workers, and I want to create the home directory myself, after the user is already created.  Ansible 2.8 let me, current devel branch fails.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
user

##### ANSIBLE VERSION
```
ansible 2.9.0.dev0
  config file = /home/mg/src/deployments/provisioning/ansible.cfg
  configured module search path = [u'/home/mg/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /home/mg/src/ansible/lib/ansible
  executable location = /home/mg/src/ansible/bin/ansible
  python version = 2.7.16 (default, Apr  6 2019, 01:42:57) [GCC 8.3.0]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```
ACTION_WARNINGS(/home/mg/src/deployments/provisioning/ansible.cfg) = False
CACHE_PLUGIN(/home/mg/src/deployments/provisioning/ansible.cfg) = jsonfile
CACHE_PLUGIN_CONNECTION(/home/mg/src/deployments/provisioning/ansible.cfg) = .cache/facts/
CACHE_PLUGIN_TIMEOUT(/home/mg/src/deployments/provisioning/ansible.cfg) = 86400
DEFAULT_CALLBACK_WHITELIST(/home/mg/src/deployments/provisioning/ansible.cfg) = [u'fancy_html']
DEFAULT_FORKS(/home/mg/src/deployments/provisioning/ansible.cfg) = 15
DEFAULT_GATHERING(/home/mg/src/deployments/provisioning/ansible.cfg) = smart
DEFAULT_HOST_LIST(/home/mg/src/deployments/provisioning/ansible.cfg) = [u'/home/mg/src/deployments/provisioning/inventory']
DEFAULT_LOG_PATH(/home/mg/src/deployments/provisioning/ansible.cfg) = /home/mg/src/deployments/provisioning/.cache/ansible.log
DEFAULT_REMOTE_USER(/home/mg/src/deployments/provisioning/ansible.cfg) = root
DEFAULT_STDOUT_CALLBACK(/home/mg/src/deployments/provisioning/ansible.cfg) = yaml
DEFAULT_VAULT_PASSWORD_FILE(/home/mg/src/deployments/provisioning/ansible.cfg) = /home/mg/src/deployments/provisioning/askpass.py
RETRY_FILES_ENABLED(/home/mg/src/deployments/provisioning/ansible.cfg) = False
```

##### OS / ENVIRONMENT
Ubuntu 19.04 on the controller, Ubuntu 16.04 and 18.04 on the targets.


##### STEPS TO REPRODUCE
```yaml
- hosts: all
  tasks:
    - name: create a user for the jenkins worker
      user: name=jenkins-worker home=/var/lib/jenkins-worker createhome=no shell=/bin/bash system=yes
      tags: [ jenkins, user ]

    - name: create /var/lib/jenkins-worker
      file: dest=/var/lib/jenkins-worker state=directory owner=jenkins-worker group=jenkins-worker
      tags: [ jenkins, user ]
```

##### EXPECTED RESULTS

I expect there to be a /var/lib/jenkins-worker, owner by jenkins-worker:jenkins-worker, with no dotfiles inside it.

##### ACTUAL RESULTS

<!--- Paste verbatim command output between quotes -->
```
TASK [jenkins-worker : create a user for the jenkins worker] ******************************************************************************************************************************************************
fatal: [xenial]: FAILED! => changed=false 
  msg: '[Errno 2] No such file or directory: ''/var/lib/jenkins-worker'''
fatal: [bionic]: FAILED! => changed=false 
  msg: '[Errno 2] No such file or directory: ''/var/lib/jenkins-worker'''
```

What's even more fun is that when I re-ran the playbook, it succeeded, and I don't understand what even is going on any more.
if not self.user_exists():
            return False
        return list(pwd.getpwnam(self.name))
    def user_info(self):