##### 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

```

self.dockerfile = build.get('dockerfile')
        self.force_source = parameters.get('force_source')
        self.force_absent = parameters.get('force_absent')
        self.force_tag = parameters.get('force_tag')
        self.load_path = parameters.get('load_path')
        self.name = parameters.get('name')
        self.network = build.get('network')
        self.nocache = build.get('nocache', False)
        self.build_path = build.get('path')
        self.pull = build.get('pull')
        self.target = build.get('target')
        self.repository = parameters.get('repository')
        self.rm = build.get('rm', True)
        self.state = parameters.get('state')
        self.tag = parameters.get('tag')
        self.http_timeout = build.get('http_timeout')
        self.push = parameters.get('push')
        self.buildargs = build.get('args')
        self.use_config_proxy = build.get('use_config_proxy')
        
        if not is_image_name_id(self.name):
            repo, repo_tag = parse_repository_tag(self.name)
            if repo_tag:
                self.name = repo
                self.tag = repo_tag
        if self.state == 'present':
            self.present()
        elif self.state == 'absent':
            self.absent()
    def fail(self, msg):