##### SUMMARY
docker_image module is missing etc_hosts parameter even if this is documented and accepted by docker.build() as  of https://docker-py.readthedocs.io/en/stable/images.html

The same argument is accepted by docker_run but the lack of support here prevents us from building images when extra_hosts is needed.

I mention that the only reason why I propose using `etc_hosts` is in order to keep it in sync with already existing implementation from `docker_container` module which accepts `etc_hosts` which is translated to `extra_hosts` on docker-python-api.

I would personally prefer to use the same names as docker-api but this would require changing docker_container too.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
docker_image

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

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below

```

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


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

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

```

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

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


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

<!--- Paste verbatim command output between quotes -->
```paste below

```

if self.client.docker_py_version >= LooseVersion('3.0.0'):
                        for chunk in image:
                            fd.write(chunk)
                    else:
                        for chunk in image.stream(2048, decode_content=False):
                            fd.write(chunk)
            except Exception as exc:
                self.fail("Error writing image archive %s - %s" % (self.archive_path, str(exc)))
        image = self.client.find_image(name=name, tag=tag)
        if image:
            self.results['image'] = image
    def push_image(self, name, tag=None):
        '''
        If the name of the image contains a repository path, then push the image.
        :param name Name of the image to push.
        :param tag Use a specific tag.
        :return: None
        '''
        repository = name
        if not tag:
            repository, tag = parse_repository_tag(name)
        registry, repo_name = resolve_repository_name(repository)
        self.log("push %s to %s/%s:%s" % (self.name, registry, repo_name, tag))
        if registry:
            self.results['actions'].append("Pushed image %s to %s/%s:%s" % (self.name, registry, repo_name, tag))
            self.results['changed'] = True
            if not self.check_mode:
                status = None
                try:
                    changed = False