### Summary

If a network interface is named 'primary', the current set of `ip addr` commands issued by module_utils/facts/network/linux.py will not give the desired results, resulting in wrong ansible facts.

The fix seems very simple, instead of:
```
args = [ip_path, 'addr', 'show', 'primary', device]
...
args = [ip_path, 'addr', 'show', 'secondary', device]
```

We can do:
```
args = [ip_path, 'addr', 'show', 'primary', 'dev', device]
...
args = [ip_path, 'addr', 'show', 'secondary', 'dev', device]
```

By adding "dev" keyword, then it makes it clear that `ip addr` command should return data from that specific device, regardless of whether the device name conflicts with another `ip addr show` keyword (such as "primary", "secondary", "deprecated", "dadfailed", "temporary", etc)


### Issue Type

Bug Report

### Component Name

facts

### Ansible Version

```console
$ ansible --version

ansible [core 2.11.8] 
  config file = None
  configured module search path = ['/Users/rob.muir/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/rob.muir/workspace/geos/build/.env/lib/python3.9/site-packages/ansible
  ansible collection location = /Users/rob.muir/.ansible/collections:/usr/share/ansible/collections
  executable location = /Users/rob.muir/workspace/geos/build/.env/bin/ansible
  python version = 3.9.1 (default, Dec 28 2020, 11:24:06) [Clang 12.0.0 (clang-1200.0.32.28)]
  jinja version = 3.1.1
  libyaml = False
```


### Configuration

```console
$ ansible-config dump --only-changed
<no output>
```


### OS / Environment

MacOS X controller, Centos 7 host

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
```
# Add network interface named "primary"
ip link add primary type dummy
# Add some IP addresses to the device to test discovery
ip address add 192.168.50.1/24 dev primary
ip address add 192.168.50.2/24 dev primary
ip address add 192.168.51.1/24 dev primary
# set interface "UP"
ip link set primary up
# discover facts
```


### Expected Results

Expect ansible to discover IP addresses (both primary and secondary) correctly,.
```
ok: [test] => {
    "hostvars": {
        "test": {
            "ansible_all_ipv4_addresses": [
                "192.168.50.1",
                "192.168.51.1",
                "192.168.50.2",
                "10.0.2.15"
            ],
```

### Actual Results

```console
Unfortunately, today any actual secondary addresses will be missing. Also there will be duplicates, which happens because the interface name collides with a special keyword to `ip address show` and because we arent supplying `dev` to make it unambiguous:

ok: [test] => {
    "hostvars": {
        "test": {
            "ansible_all_ipv4_addresses": [
                "10.0.2.15",
                "192.168.50.1",
                "192.168.51.1",
                "10.0.2.15",
                "192.168.50.1",
                "192.168.51.1",
                "10.0.2.15"
            ],
```
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
'network': network,
                                                         'prefix': netmask_length,
                                                         }
                        else:
                            if "ipv4_secondaries" not in interfaces[iface]:
                                interfaces[iface]["ipv4_secondaries"] = []
                            interfaces[iface]["ipv4_secondaries"].append({
                                'address': address,
                                'broadcast': broadcast,
                                'netmask': netmask,
                                'network': network,
                                'prefix': netmask_length,
                            })
                        
                        if secondary:
                            if "ipv4_secondaries" not in interfaces[device]:
                                interfaces[device]["ipv4_secondaries"] = []
                            if device != iface:
                                interfaces[device]["ipv4_secondaries"].append({
                                    'address': address,
                                    'broadcast': broadcast,
                                    'netmask': netmask,
                                    'network': network,
                                    'prefix': netmask_length,
                                })
                        
                        
                        if 'address' in default_ipv4 and default_ipv4['address'] == address:
                            default_ipv4['broadcast'] = broadcast
                            default_ipv4['netmask'] = netmask