<!--- 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 -->
In Ansible 2.8.2, using the `user` module against an AIX host produces the following error:
~~~
The full traceback is:
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 "/tmp/ansible_user_payload_IVarsv/__main__.py", line 2953, in <module>
  File "/tmp/ansible_user_payload_IVarsv/__main__.py", line 2892, in main
  File "/tmp/ansible_user_payload_IVarsv/__main__.py", line 1056, in modify_user
  File "/tmp/ansible_user_payload_IVarsv/__main__.py", line 2402, in modify_user_usermod
  File "/tmp/ansible_user_payload_IVarsv/__main__.py", line 886, in user_info
  File "/tmp/ansible_user_payload_IVarsv/__main__.py", line 910, in user_password
  File "/tmp/ansible_user_payload_IVarsv/__main__.py", line 2517, in parse_shadow_file
UnboundLocalError: local variable 'b_passwd' referenced before assignment
~~~

This may be a possible regression as Ansible 2.7 executes `user` successfully.

##### ISSUE TYPE
- Bug Report

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

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible-playbook 2.8.2
  config file = /ansible/tower/projects/_214__mq_client_jar_deployment/ansible.cfg
  configured module search path = [u'/var/lib/awx/.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-playbook
  python version = 2.7.5 (default, May 31 2018, 09:41:32) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
IBM AIX

##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->
1. Run the `user` module against a set of IBM AIX nodes using Ansible 2.7.
2. Upgrade Ansible to 2.8.2.
3. Run the `user` module against a set of IBM AIX nodes using Ansible 2.8.2.

<!--- Paste example playbooks or commands between quotes below -->
```yaml
  tasks:

    - name: Get sys user status
      user:
        name: sys
        group: sys
      check_mode: true
      register: user_out
```

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

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
Ansible should have executed the `user` module per the preceding playbook task.

~~~
TASK [Get sys user status] *****************************************************
ok: [node1.is.local]
ok: [node2.is.local]
ok: [node3.is.local]
ok: [node4.is.local]
~~~

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->
Instead, the Ansible task fails with the following stack trace: 

<!--- Paste verbatim command output between quotes -->
```paste below
The full traceback is:
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 "/tmp/ansible_user_payload_IVarsv/__main__.py", line 2953, in <module>
  File "/tmp/ansible_user_payload_IVarsv/__main__.py", line 2892, in main
  File "/tmp/ansible_user_payload_IVarsv/__main__.py", line 1056, in modify_user
  File "/tmp/ansible_user_payload_IVarsv/__main__.py", line 2402, in modify_user_usermod
  File "/tmp/ansible_user_payload_IVarsv/__main__.py", line 886, in user_info
  File "/tmp/ansible_user_payload_IVarsv/__main__.py", line 910, in user_password
  File "/tmp/ansible_user_payload_IVarsv/__main__.py", line 2517, in parse_shadow_file
UnboundLocalError: local variable 'b_passwd' referenced before assignment
```

The stack trace goes back to `parse_shadow_file()`, which was introduced in the following commit: https://github.com/ansible/ansible/commit/f27eccabbd00f628f6e4195be7e1e4e5c463cba2#diff-8f60df5685f83b8659a1106d36591e93
"""
    This is the BusyBox class for use on systems that have adduser, deluser,
    and delgroup commands. It overrides the following methods:
        - create_user()
        - remove_user()
        - modify_user()
    """
    def create_user(self):
        cmd = [self.module.get_bin_path('adduser', True)]
        cmd.append('-D')
        if self.uid is not None:
            cmd.append('-u')
            cmd.append(self.uid)
        if self.group is not None:
            if not self.group_exists(self.group):
                self.module.fail_json(msg='Group {0} does not exist'.format(self.group))
            cmd.append('-G')
            cmd.append(self.group)
        if self.comment is not None:
            cmd.append('-g')
            cmd.append(self.comment)
        if self.home is not None:
            cmd.append('-h')
            cmd.append(self.home)
        if self.shell is not None:
            cmd.append('-s')