<!--- 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
<!--- Explain the problem briefly below -->
New network modules were added in ansible version 2.9. While testing I came across a bug. More precisely module **ios_l3_interfaces** doesn't set ipv6 addresses correctly when state set to **replaced**. Instead of replacing IP, module just adds it (same behavior as when state is set to merged).

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
ios_l3_interfaces
##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.9.0
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
Nothing that would affect module logic
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
Host = Debian 9, python 2.7.13
Target = Cisco WS-C4500X-16 Version 03.11.00.E

##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->
Before config:
```
interface Vlan100
    ipv6 address 2001:DB8::1/32
    ipv6 enable
```
Ansible playbook example:
```yaml
- name: Configure IPv6
  hosts: cisco4500
  gather_facts: yes
  tasks:
    - ios_l3_interfaces:
        config:
          - name: Vlan100
            ipv6:
              - address: 2001:DB8::2/32
        state: replaced
```

##### EXPECTED RESULTS
I expect module to change IP address from 2001:DB8::1/32 to 2001:DB8::2/32
It works like this for ipv4 (same module) and for ipv4/ipv6 in junos_l3_interfaces.
 
Expected after config:
```
interface Vlan100
    ipv6 address 2001:DB8::2/32
    ipv6 enable
```

##### ACTUAL RESULTS
It merges instead of replaces.

Actual after config:
```
interface Vlan100
    ipv6 address 2001:DB8::1/32
    ipv6 address 2001:DB8::2/32
    ipv6 enable
```

Ansible verbose output:
```
changed: [cisco4500] => {
    "after": [
        {
            "name": "loopback0"
        }, 
        {
            "name": "FastEthernet1"
        }, 
        {
            "name": "TenGigabitEthernet1/1"
        }, 
        {
            "name": "TenGigabitEthernet1/2"
        }, 
        {
            "name": "TenGigabitEthernet1/3"
        }, 
        {
            "name": "TenGigabitEthernet1/4"
        }, 
        {
            "name": "TenGigabitEthernet1/5"
        }, 
        {
            "name": "TenGigabitEthernet1/6"
        }, 
        {
            "name": "TenGigabitEthernet1/7"
        }, 
        {
            "name": "TenGigabitEthernet1/8"
        }, 
        {
            "name": "TenGigabitEthernet1/9"
        }, 
        {
            "name": "TenGigabitEthernet1/10"
        }, 
        {
            "name": "TenGigabitEthernet1/11"
        }, 
        {
            "name": "TenGigabitEthernet1/12"
        }, 
        {
            "name": "TenGigabitEthernet1/13"
        }, 
        {
            "name": "TenGigabitEthernet1/14"
        }, 
        {
            "name": "TenGigabitEthernet1/15"
        }, 
        {
            "name": "TenGigabitEthernet1/16"
        }, 
        {
            "ipv6": [
                {
                    "address": "2001:DB8::1/32"
                }, 
                {
                    "address": "2001:DB8::2/32"
                }
            ], 
            "name": "Vlan100"
        }
    ], 
    "before": [
        {
            "name": "loopback0"
        }, 
        {
            "name": "FastEthernet1"
        }, 
        {
            "name": "TenGigabitEthernet1/1"
        }, 
        {
            "name": "TenGigabitEthernet1/2"
        }, 
        {
            "name": "TenGigabitEthernet1/3"
        }, 
        {
            "name": "TenGigabitEthernet1/4"
        }, 
        {
            "name": "TenGigabitEthernet1/5"
        }, 
        {
            "name": "TenGigabitEthernet1/6"
        }, 
        {
            "name": "TenGigabitEthernet1/7"
        }, 
        {
            "name": "TenGigabitEthernet1/8"
        }, 
        {
            "name": "TenGigabitEthernet1/9"
        }, 
        {
            "name": "TenGigabitEthernet1/10"
        }, 
        {
            "name": "TenGigabitEthernet1/11"
        }, 
        {
            "name": "TenGigabitEthernet1/12"
        }, 
        {
            "name": "TenGigabitEthernet1/13"
        }, 
        {
            "name": "TenGigabitEthernet1/14"
        }, 
        {
            "name": "TenGigabitEthernet1/15"
        }, 
        {
            "name": "TenGigabitEthernet1/16"
        }, 
        {
            "ipv6": [
                {
                    "address": "2001:DB8::1/32"
                }
            ], 
            "name": "Vlan100"
        }
    ], 
    "changed": true, 
    "commands": [
        "interface Vlan100", 
        "ipv6 address 2001:DB8::2/32"
    ], 
    "invocation": {
        "module_args": {
            "config": [
                {
                    "ipv6": [
                        {
                            "address": "2001:DB8::2/32"
                        }
                    ], 
                    "name": "Vlan100"
                }
            ], 
            "state": "replaced"
        }
    }
}
```
test_dict = dict()
    if isinstance(sample_dict, dict):
        for k, v in iteritems(sample_dict):
            if v is not None:
                if isinstance(v, list):
                    if isinstance(v[0], dict):
                        li = []
                        for each in v:
                            for key, value in iteritems(each):
                                if isinstance(value, list):
                                    each[key] = tuple(value)
                            li.append(tuple(iteritems(each)))
                        v = tuple(li)
                    else:
                        v = tuple(v)
                elif isinstance(v, dict):
                    li = []
                    for key, value in iteritems(v):
                        if isinstance(value, list):
                            v[key] = tuple(value)
                    li.extend(tuple(iteritems(v)))
                    v = tuple(li)
                test_dict.update({k: v})
        return_set = set(tuple(iteritems(test_dict)))
    else:
        return_set = set(sample_dict)
    return return_set
def filter_dict_having_none_value(want, have):