##### SUMMARY
Currently the module ufw does not allow to specify two network interfaces for forwarding rules (rule='allow' routed='yes').
What I'd like to achieve is this rule:
`ufw route allow in on ethX out on ethY to 10.0.0.0/8 from 192.168.0.0/24`

To my knowledge, the best one can do is pick one interface and decide to flag it with "in" or "out" traffic using the `direction` property. So the equivalent of either:
`ufw route allow in on ethX to 10.0.0.0/8 from 192.168.0.0/24` or 
`ufw route allow out on ethY to 10.0.0.0/8 from 192.168.0.0/24`

Is there a mechanism to provide both interfaces to the module?

##### ISSUE TYPE
- Feature request

##### COMPONENT NAME
module ufw

##### ANSIBLE VERSION
```
ansible 2.8.2
  config file = /mnt/c/dev/sandboxes/ansible/ansible.cfg
  configured module search path = [u'/home/me/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /home/me/virtualenvs/ansible/local/lib/python2.7/site-packages/ansible
  executable location = /home/me/virtualenvs/ansible/bin/ansible
  python version = 2.7.12 (default, Dec  4 2017, 14:50:18) [GCC 5.4.0 20160609]
```

##### CONFIGURATION
```
ANSIBLE_PIPELINING(/mnt/c/dev/sandboxes/ansible/ansible.cfg) = True
DEFAULT_ROLES_PATH(/mnt/c/dev/sandboxes/ansible/ansible.cfg) = [u'/mnt/c/dev/sandboxes/ansible/.imported_roles', u'/mnt/c/dev/sandboxes/ansible/roles']
DEFAULT_VAULT_PASSWORD_FILE(env: ANSIBLE_VAULT_PASSWORD_FILE) = /home/me/.vault_pass.txt
```

##### OS / ENVIRONMENT
Ubuntu Linux 18.04 LTS


##### STEPS TO REPRODUCE
Cannot really (re)produce, we just can't express it. There is a single parameter `interface` and we would need 2. (Or a convention to pass a tuple of interfaces into `interface`, comma separated?)


##### EXPECTED RESULTS
Being able to specify an "in" interface and an "out" interface.
In the following snippet, only the "out" interface can be mentioned.
```yaml
changed: [testvm1] => (item={u'direction': u'out', u'to_ip': u'0.0.0.0/0', u'interface': u'ethY', u'route': u'yes', u'from_ip': u'192.168.0.0/24', u'rule': u'allow'}) => {
    "ansible_loop_var": "item",
    "changed": true,
    "commands": [
        "/usr/sbin/ufw status verbose",
        "/bin/grep -h '^### tuple' /lib/ufw/user.rules /lib/ufw/user6.rules /etc/ufw/user.rules /etc/ufw/user6.rules /var/lib/ufw/user.rules /var/lib/ufw/user6.rules",
        "/usr/sbin/ufw --version",
        "/usr/sbin/ufw route allow out on ethY from 192.168.0.0/24 to 0.0.0.0/0",
        "/usr/sbin/ufw status verbose",
        "/bin/grep -h '^### tuple' /lib/ufw/user.rules /lib/ufw/user6.rules /etc/ufw/user.rules /etc/ufw/user6.rules /var/lib/ufw/user.rules /var/lib/ufw/user6.rules"
    ],
    "invocation": {
        "module_args": {
            "app": null,
            "comment": null,
            "default": null,
            "delete": false,
            "direction": "out",
            "from_ip": "192.168.0.0/24",
            "from_port": null,
            "insert": null,
            "insert_relative_to": "zero",
            "interface": "ethY",
            "log": false,
            "logging": null,
            "proto": null,
            "route": true,
            "rule": "allow",
            "state": null,
            "to_ip": "0.0.0.0/0",
            "to_port": null
        }
    },
    "item": {
        "direction": "out",
        "from_ip": "192.168.0.0/24",
        "interface": "ethY",
        "route": "yes",
        "rule": "allow",
        "to_ip": "0.0.0.0/0"
    },
    "msg": "Status: active\nLogging: off\nDefault: deny (incoming), allow (outgoing), deny (routed)\nNew profiles: skip\n\nTo                         Action      From\n--                         ------      ----\n10.0.0.0/8 on ethY         ALLOW FWD   10.254.33.0/24"
}
```
##### ACTUAL RESULTS
We must choose which interface we want to specify as there is only one `interface` parameter. (In my case, I will specify the output interface preferably over the incoming interface and count on the address range to be selective enough but YMVV)

set_module_args({
            'logging': 'off',
            '_ansible_check_mode': True
        })
        self.assertTrue(self.__getResult(do_nothing_func_port_7000).exception.args[0]['changed'])
    def test_logging_on(self):
        set_module_args({
            'logging': 'on',
            '_ansible_check_mode': True
        })
        self.assertFalse(self.__getResult(do_nothing_func_port_7000).exception.args[0]['changed'])
    def test_default_changed(self):
        set_module_args({
            'default': 'allow',
            "direction": "incoming",
            '_ansible_check_mode': True
        })
        self.assertTrue(self.__getResult(do_nothing_func_port_7000).exception.args[0]['changed'])
    def test_default_not_changed(self):
        set_module_args({
            'default': 'deny',
            "direction": "incoming",
            '_ansible_check_mode': True
        })
        self.assertFalse(self.__getResult(do_nothing_func_port_7000).exception.args[0]['changed'])
    def test_ipv6_remove(self):