<!--- 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
The module fails if group (string) is not an integer.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
unarchive.py

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```
ansible 2.9.11
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```
N/A
```

##### OS / ENVIRONMENT
independent


##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->

<!--- Paste example playbooks or commands between quotes below -->
```
- name: "Unarchive artifacts"
  unarchive:
    src: "/tmp/artifact_name.zip"
    dest: "/tmp/artifact_name/"
    remote_src: yes
    owner: '{{ user_uid }}'
    group: '{{ user_gid }}'
  loop: "{{ artifacts }}"
  loop_control:
    loop_var: artifact
  tags:
    - never
    - deploy


```

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

##### EXPECTED RESULTS
Archives are extracted with given ownership and group


##### ACTUAL RESULTS
```
The full traceback is:
Traceback (most recent call last):
  File "<stdin>", line 102, in <module>
  File "<stdin>", line 94, in _ansiballz_main
  File "<stdin>", line 40, in invoke_module
  File "/usr/lib64/python2.6/runpy.py", line 136, in run_module
    fname, loader, pkg_name)
  File "/usr/lib64/python2.6/runpy.py", line 54, in _run_module_code
    mod_loader, pkg_name)
  File "/usr/lib64/python2.6/runpy.py", line 34, in _run_code
    exec code in run_globals
  File "/tmp/ansible_unarchive_payload_mD4gq1/ansible_unarchive_payload.zip/ansible/modules/files/unarchive.py", line 913, in <module>
  File "/tmp/ansible_unarchive_payload_mD4gq1/ansible_unarchive_payload.zip/ansible/modules/files/unarchive.py", line 871, in main
  File "/tmp/ansible_unarchive_payload_mD4gq1/ansible_unarchive_payload.zip/ansible/modules/files/unarchive.py", line 355, in is_unarchived
TypeError: group id must be integer
failed: [hostname] (item={'name': 'artifact_name'}) => {
    "ansible_loop_var": "artifact",
    "artifact": {
        "name": "artifact_name"
    },
    "changed": false,
    "module_stderr": "Traceback (most recent call last):\n  File \"<stdin>\", line 102, in <module>\n  File \"<stdin>\", line 94, in _ansiballz_main\n  File \"<stdin>\", line 40, in invoke_module\n  File \"/usr/lib64/python2.6/runpy.py\", line 136, in run_module\n    fname, loader, pkg_name)\n  File \"/usr/lib64/python2.6/runpy.py\", line 54, in _run_module_code\n    mod_loader, pkg_name)\n  File \"/usr/lib64/python2.6/runpy.py\", line 34, in _run_code\n    exec code in run_globals\n  File \"/tmp/ansible_unarchive_payload_mD4gq1/ansible_unarchive_payload.zip/ansible/modules/files/unarchive.py\", line 913, in <module>\n  File \"/tmp/ansible_unarchive_payload_mD4gq1/ansible_unarchive_payload.zip/ansible/modules/files/unarchive.py\", line 871, in main\n  File \"/tmp/ansible_unarchive_payload_mD4gq1/ansible_unarchive_payload.zip/ansible/modules/files/unarchive.py\", line 355, in is_unarchived\nTypeError: group id must be integer\n",
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 1
}

```

''' Convert a Unix permission string (rw-r--r--) into a mode (0644) '''
        revstr = modestr[::-1]
        mode = 0
        for j in range(0, 3):
            for i in range(0, 3):
                if revstr[i + 3 * j] in ['r', 'w', 'x', 's', 't']:
                    mode += 2 ** (i + 3 * j)
        
        return (mode & ~umask)
    def _legacy_file_list(self):
        unzip_bin = self.module.get_bin_path('unzip')
        if not unzip_bin:
            raise UnarchiveError('Python Zipfile cannot read %s and unzip not found' % self.src)
        rc, out, err = self.module.run_command([unzip_bin, '-v', self.src])
        if rc:
            raise UnarchiveError('Neither python zipfile nor unzip can read %s' % self.src)
        for line in out.splitlines()[3:-2]:
            fields = line.split(None, 7)
            self._files_in_archive.append(fields[7])
            self._infodict[fields[7]] = int(fields[6])
    def _crc32(self, path):