<!--- 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 -->
IOSXR L3 is having idempotent issue, which is resulting into change as True even if there's no change.
https://dashboard.zuul.ansible.com/t/ansible/build/40e9d4f8d8f04e53a06f7b07849aa304
https://dashboard.zuul.ansible.com/t/ansible/build/2447ad82cf5c475c8f5c2c4546ca18f6
https://dashboard.zuul.ansible.com/t/ansible/build/52237d4c64644a1fb18e941b5da75bb8 

##### ISSUE TYPE
- Bug Report

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

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
2.9 and 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. -->
ios

##### 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 -->
On the second run of play, the run should be idempotent

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->
On the second run of play, the run is not idempotent
<!--- Paste verbatim command output between quotes -->
```paste below

```

have_dict = filter_dict_having_none_value(interface, each)
            commands.extend(self._clear_config(dict(), have_dict))
            commands.extend(self._set_config(interface, each, module))
        
        for each in (not_in_have - in_have):
            for every in want:
                interface = 'interface {0}'.format(every['name'])
                if each and interface not in commands:
                    commands.extend(self._set_config(every, {}, module))
        
        commands = remove_duplicate_interface(commands)
        return commands
    def _state_merged(self, want, have, module):
        """ The command generator when state is merged
        :rtype: A list
        :returns: the commands necessary to merge the provided into
                  the current configuration
        """
        commands = []
        for interface in want:
            interface['name'] = normalize_interface(interface['name'])
            for each in have:
                if each['name'] == interface['name']:
                    break
            else:
                commands.extend(self._set_config(interface, dict(), module))
                continue
            commands.extend(self._set_config(interface, each, module))
        return commands
    def _state_deleted(self, want, have):