##### SUMMARY
This works on the host:
```
curl -L https://github.com/mozilla/geckodriver/releases/download/v0.26.0/geckodriver-v0.26.0-linux64.tar.gz | tar xz
```

Using the `unarchive` module to do the same thing does not work.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
m:unarchive

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.8.5
  config file = None
  configured module search path = ['/Users/foo/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/Cellar/ansible/2.8.5_1/libexec/lib/python3.7/site-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.7.4 (default, Sep  7 2019, 18:27:02) [Clang 10.0.1 (clang-1001.0.46.4)]
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
Client: macOS 10.14.6
Host: Ubuntu 19.10

The `tar` binary has been installed using `sudo apt install tar` and `/usr/bin/tar` is present.

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

<!--- Paste example playbooks or commands between quotes below -->
```yaml
- name: Get geckodriver
  hosts: all
  tasks:
    - name: Fetch and extract geckodriver
      unarchive:
        src: https://github.com/mozilla/geckodriver/releases/download/v0.26.0/geckodriver-v0.26.0-linux64.tar.gz
        # this directory exists on the host:
        dest: crawler-stuff
        remote_src: yes
        # Tried with and without the following:
        #extra_opts: xz
```

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
It should work.

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

<!--- Paste verbatim command output between quotes -->
```paste below
PLAY [Get geckodriver] *****************************************************************************

TASK [Fetch and extract geckodriver] ****************************************************************************
fatal: [foo@hostname]: FAILED! => {"changed": false, "msg": "Failed to find handler for \"/root/.ansible/tmp/ansible-tmp-1573229459.674401-203357087796695/geckodriver-v0.26.0-linux64.tar0RChLg.gz\". Make sure the required command to extract the file is installed. Command \"/usr/bin/tar\" could not handle archive. Command \"/usr/bin/unzip\" could not handle archive."}
```
elif uid and uid != fut_uid:
                change = True
                err += 'Path %s is owned by uid %s, not by uid %s as expected\n' % (path, uid, fut_uid)
                itemized[6] = 'o'
            
            group = gid = None
            try:
                group = grp.getgrgid(st.st_gid).gr_name
            except (KeyError, ValueError, OverflowError):
                gid = st.st_gid
            if run_uid != 0 and (fut_group != run_group or fut_gid != run_gid) and fut_gid not in groups:
                raise UnarchiveError('Cannot change group ownership of %s to %s, as user %s' % (path, fut_group, run_owner))
            if group and group != fut_group:
                change = True
                err += 'Path %s is owned by group %s, not by group %s as expected\n' % (path, group, fut_group)
                itemized[6] = 'g'
            elif gid and gid != fut_gid:
                change = True
                err += 'Path %s is owned by gid %s, not by gid %s as expected\n' % (path, gid, fut_gid)
                itemized[6] = 'g'
            
            if change:
                if path not in self.includes:
                    self.includes.append(path)
                diff += '%s %s\n' % (''.join(itemized), path)
        if self.includes:
            unarchived = False
        
        return dict(unarchived=unarchived, rc=rc, out=out, err=err, cmd=cmd, diff=diff)
    def unarchive(self):