<!--- 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 -->
When using `docker_network` to create a network with multiple subnets, the task will delete/create the network even if it already exists with the correct subnets. Ansible fails to judge if the existing subnets are correct, probably because of the way the arrays of subnets are compared in python.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
docker_network

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.9.2
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/gunix/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.8/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.8.0 (default, Oct 23 2019, 18:51:26) [GCC 9.2.0]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
ANSIBLE_PIPELINING(/etc/ansible/ansible.cfg) = True
DEFAULT_LOG_PATH(/etc/ansible/ansible.cfg) = /var/log/ansible/ansible.log
HOST_KEY_CHECKING(/etc/ansible/ansible.cfg) = True
INTERPRETER_PYTHON(/etc/ansible/ansible.cfg) = /usr/bin/python3
```

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


##### 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: "deploy network namespace that can hold all IPs"
  docker_network:
    name: "macvlan1"
    driver: "macvlan"
    internal: false
    driver_options:
      parent: "{{ ansible_default_ipv4.alias }}"
    ipam_config: "{{ macvlan_subnets }}"
```
also vars:
```
macvlan_subnets:
- gateway: 10.162.208.1
  subnet: 10.162.208.0/24
- gateway: 10.162.223.1
  subnet: 10.162.223.0/24
- gateway: 10.162.210.1
  subnet: 10.162.210.0/24
```

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

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
I was expecting to run the play 10 times and get Changed only on the first run and OK on the other 9 runs.

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->
The docker network ALWAYS changes, even if the subnets are correct on the server, causing all docker containers on the network to disconnect. This will cause downtime for all the services that run on the node.

<!--- Paste verbatim command output between quotes -->
```paste below
TASK [gen4 : deploy network namespace that can hold all IPs] ****************************************************************
--- before
+++ after
@@ -1,19 +1,19 @@
 {
-    "connected.10.162.208.129": false,
-    "connected.10.162.210.161": false,
-    "connected.10.162.210.169": false,
-    "connected.10.162.210.170": false,
-    "connected.10.162.210.171": false,
-    "connected.10.162.210.172": false,
-    "connected.10.162.210.173": false,
-    "connected.10.162.223.72": false,
-    "connected.10.162.223.73": false,
-    "connected.10.162.223.74": false,
-    "connected.10.162.223.75": false,
-    "connected.10.162.223.76": false,
+    "connected.10.162.208.129": true,
+    "connected.10.162.210.161": true,
+    "connected.10.162.210.169": true,
+    "connected.10.162.210.170": true,
+    "connected.10.162.210.171": true,
+    "connected.10.162.210.172": true,
+    "connected.10.162.210.173": true,
+    "connected.10.162.223.72": true,
+    "connected.10.162.223.73": true,
+    "connected.10.162.223.74": true,
+    "connected.10.162.223.75": true,
+    "connected.10.162.223.76": true,
     "exists": true,
-    "ipam_config[0].gateway": "10.162.210.1",
-    "ipam_config[0].subnet": "10.162.210.0/24",
-    "ipam_config[1].gateway": "10.162.210.1",
-    "ipam_config[1].subnet": "10.162.210.0/24"
+    "ipam_config[0].gateway": "10.162.208.1",
+    "ipam_config[0].subnet": "10.162.208.0/24",
+    "ipam_config[1].gateway": "10.162.223.1",
+    "ipam_config[1].subnet": "10.162.223.0/24"
 }

changed: [server1337.gun1x]
```

return [c['Name'] for c in network['Containers'].values()] if network['Containers'] else []
CIDR_IPV4 = re.compile(r'^([0-9]{1,3}\.){3}[0-9]{1,3}/([0-9]|[1-2][0-9]|3[0-2])$')
CIDR_IPV6 = re.compile(r'^[0-9a-fA-F:]+/([0-9]|[1-9][0-9]|1[0-2][0-9])$')
def get_ip_version(cidr):
    """Gets the IP version of a CIDR string
    :param cidr: Valid CIDR
    :type cidr: str
    :return: ``ipv4`` or ``ipv6``
    :rtype: str
    :raises ValueError: If ``cidr`` is not a valid CIDR
    """
    if CIDR_IPV4.match(cidr):
        return 'ipv4'
    elif CIDR_IPV6.match(cidr):
        return 'ipv6'
    raise ValueError('"{0}" is not a valid CIDR'.format(cidr))
def normalize_ipam_config_key(key):
    """Normalizes IPAM config keys returned by Docker API to match Ansible keys
    :param key: Docker API key
    :type key: str
    :return Ansible module key
    :rtype str
    """
    special_cases = {
        'AuxiliaryAddresses': 'aux_addresses'
    }
    return special_cases.get(key, key.lower())
class DockerNetworkManager(object):