### Summary

When using the user module to modify password_expire_min=0, the processing result does not meet expectations .
I guess the problem is caused by the following code in the user module.
```
    # deal with password expire min
    if user.password_expire_min:
        if user.user_exists():
            (rc, out, err) = user.set_password_expire_min()
```
Modifying to the following  code may fix this problem.
```
    # deal with password expire min
    if user.password_expire_min is not None:
        if user.user_exists():
            (rc, out, err) = user.set_password_expire_min()
```

### Issue Type

Bug Report

### Component Name

user

### Ansible Version

```console
$ ansible --version
ansible [core 2.11.1] 
  config file = None
  configured module search path = ['/home/betadmin/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /app/python3/lib/python3.8/site-packages/ansible
  ansible collection location = /home/betadmin/.ansible/collections:/usr/share/ansible/collections
  executable location = /app/python3/bin/ansible
  python version = 3.8.5 (default, Sep 18 2020, 14:55:53) [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)]
  jinja version = 2.11.2
  libyaml = False
```


### Configuration

```console
$ ansible-config dump --only-changed
```


### OS / Environment

RHEL 7.4

### Steps to Reproduce

- name: Edit password_expire_min
  user:
    name: test
    password_expire_min: 0



### Expected Results

Minimum number of days between password change	: 0


### Actual Results


Minimum number of days between password change	: 2


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
maybe_invalid = True
                    else:
                        maybe_invalid = True
            if maybe_invalid:
                self.module.warn("The input password appears not to have been hashed. "
                                 "The 'password' argument must be encrypted for this module to work properly.")
    def execute_command(self, cmd, use_unsafe_shell=False, data=None, obey_checkmode=True):
        if self.module.check_mode and obey_checkmode:
            self.module.debug('In check mode, would have run: "%s"' % cmd)
            return (0, '', '')
        else:
            
            cmd = [str(x) for x in cmd]
            return self.module.run_command(cmd, use_unsafe_shell=use_unsafe_shell, data=data)
    def backup_shadow(self):
        if not self.module.check_mode and self.SHADOWFILE:
            return self.module.backup_local(self.SHADOWFILE)
    def remove_user_userdel(self):
        if self.local:
            command_name = 'luserdel'
        else:
            command_name = 'userdel'
        cmd = [self.module.get_bin_path(command_name, True)]
        if self.force and not self.local:
            cmd.append('-f')
        if self.remove:
            cmd.append('-r')
        cmd.append(self.name)
        return self.execute_command(cmd)
    def create_user_useradd(self):