<!--- 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 -->
Currently, the `nxos_l2_interfaces` module does not provide an option to append vlans to that allowed vlan list. When using the `state: merged`  any config that was untouched by the task remains but any configuration provided will replace the current config. This option was available in the `nxos_l2_interface` with the `trunk_vlans` parm.  The module is currently sending the `switchport trunk allowed vlan <#>` and not `switchport trunk allowed vlan add <#>` so a full list of allowed vlans must be supplied. 

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
nxos_l2_interfaces
##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.9.1
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/Users/bdudas/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/Cellar/ansible/2.9.1/libexec/lib/python3.7/site-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.7.5 (default, Nov  1 2019, 02:16:32) [Clang 11.0.0 (clang-1100.0.33.8
```
##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
```
an-nxos-02# show version
Cisco Nexus Operating System (NX-OS) Software
TAC support: http://www.cisco.com/tac
Documents: http://www.cisco.com/en/US/products/ps9372/tsd_products_support_series_home.html
Copyright (c) 2002-2016, Cisco Systems, Inc. All rights reserved.
The copyrights to certain works contained herein are owned by
other third parties and are used and distributed under license.
Some parts of this software are covered under the GNU Public
License. A copy of the license is available at
http://www.gnu.org/licenses/gpl.html.

NX-OSv is a demo version of the Nexus Operating System

Software
  loader:    version N/A
  kickstart: version 7.3(0)D1(1)
  system:    version 7.3(0)D1(1)
  kickstart image file is: bootflash:///titanium-d1-kickstart.7.3.0.D1.1.bin
  kickstart compile time:  1/11/2016 16:00:00 [02/11/2016 10:30:12]
  system image file is:    bootflash:///titanium-d1.7.3.0.D1.1.bin
  system compile time:     1/11/2016 16:00:00 [02/11/2016 13:08:11]


Hardware
  cisco NX-OSv Chassis ("NX-OSv Supervisor Module")
  QEMU Virtual CPU version 2.5 with 3064740 kB of memory.
  Processor Board ID TM000B0000B

  Device name: an-nxos-02
  bootflash:    3184776 kB

Kernel uptime is 0 day(s), 2 hour(s), 44 minute(s), 51 second(s)


plugin
  Core Plugin, Ethernet Plugin

Active Package(s)
```


##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->

<!--- Paste example playbooks or commands between quotes below -->
```yaml
---
- hosts: nxos
  gather_facts: false
  vars:
    new_vlans: 200

  tasks:
    - name: add vlans to allowed list
      nxos_l2_interfaces:
        config:
          - name: Ethernet2/31
            trunk:
              allowed_vlans: "{{ new_vlans }}"
        state: merged
...
```

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

##### RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->
Starting Interface Config:
```
an-nxos-02# show run interface Ethernet 2/31

!Command: show running-config interface Ethernet2/31
!Time: Wed Nov 27 15:57:00 2019

version 7.3(0)D1(1)

interface Ethernet2/31
  shutdown
  switchport
  switchport trunk native vlan 99
  switchport trunk allowed vlan 101,104-106
```
Post Job interface Config:
```
an-nxos-02# show run interface Ethernet 2/31

!Command: show running-config interface Ethernet2/31
!Time: Wed Nov 27 16:04:53 2019

version 7.3(0)D1(1)

interface Ethernet2/31
  shutdown
  switchport
  switchport trunk native vlan 99
  switchport trunk allowed vlan 200
```
<!--- Paste verbatim command output between quotes -->
```paste below
ansible-playbook 2.9.1
  config file = /Users/fubar/dev-net/nxos/ansible.cfg
  configured module search path = ['/Users/fubar/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/Cellar/ansible/2.9.1/libexec/lib/python3.7/site-packages/ansible
  executable location = /usr/local/bin/ansible-playbook
  python version = 3.7.5 (default, Nov  1 2019, 02:16:32) [Clang 11.0.0 (clang-1100.0.33.8)]
Using /Users/fubar/dev-net/nxos/ansible.cfg as config file
host_list declined parsing /Users/fubar/dev-net/inventory/hosts as it did not pass its verify_file() method
script declined parsing /Users/fubar/dev-net/inventory/hosts as it did not pass its verify_file() method
auto declined parsing /Users/fubar/dev-net/inventory/hosts as it did not pass its verify_file() method
Parsed /Users/fubar/dev-net/inventory/hosts inventory source with ini plugin
 _____________________________
< PLAYBOOK: allowed_vlans.yml >
 -----------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

1 plays in allowed_vlans.yml
 _____________
< PLAY [nxos] >
 -------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

META: ran handlers
 __________________________________
< TASK [add vlans to allowed list] >
 ----------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

task path: /Users/fubar/dev-net/nxos/allowed_vlans.yml:8
<nxos-01> ESTABLISH LOCAL CONNECTION FOR USER: fubar
<nxos-01> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /Users/fubar/.ansible/tmp/ansible-local-351511mqamcek/ansible-tmp-1574871651.6025379-270697238693828 `" && echo ansible-tmp-1574871651.6025379-270697238693828="` echo /Users/fubar/.ansible/tmp/ansible-local-351511mqamcek/ansible-tmp-1574871651.6025379-270697238693828 `" ) && sleep 0'
<nxos-01> Attempting python interpreter discovery
<nxos-01> EXEC /bin/sh -c 'echo PLATFORM; uname; echo FOUND; command -v '"'"'/usr/bin/python'"'"'; command -v '"'"'python3.7'"'"'; command -v '"'"'python3.6'"'"'; command -v '"'"'python3.5'"'"'; command -v '"'"'python2.7'"'"'; command -v '"'"'python2.6'"'"'; command -v '"'"'/usr/libexec/platform-python'"'"'; command -v '"'"'/usr/bin/python3'"'"'; command -v '"'"'python'"'"'; echo ENDFOUND && sleep 0'
<nxos-01> Python interpreter discovery fallback (unsupported platform for extended discovery: darwin)
Using module file /usr/local/Cellar/ansible/2.9.1/libexec/lib/python3.7/site-packages/ansible/modules/network/nxos/nxos_l2_interfaces.py
<nxos-01> PUT /Users/fubar/.ansible/tmp/ansible-local-351511mqamcek/tmpjicqhgg0 TO /Users/fubar/.ansible/tmp/ansible-local-351511mqamcek/ansible-tmp-1574871651.6025379-270697238693828/AnsiballZ_nxos_l2_interfaces.py
<nxos-01> EXEC /bin/sh -c 'chmod u+x /Users/fubar/.ansible/tmp/ansible-local-351511mqamcek/ansible-tmp-1574871651.6025379-270697238693828/ /Users/fubar/.ansible/tmp/ansible-local-351511mqamcek/ansible-tmp-1574871651.6025379-270697238693828/AnsiballZ_nxos_l2_interfaces.py && sleep 0'
<nxos-01> EXEC /bin/sh -c '/usr/bin/python /Users/fubar/.ansible/tmp/ansible-local-351511mqamcek/ansible-tmp-1574871651.6025379-270697238693828/AnsiballZ_nxos_l2_interfaces.py && sleep 0'
<nxos-01> EXEC /bin/sh -c 'rm -f -r /Users/fubar/.ansible/tmp/ansible-local-351511mqamcek/ansible-tmp-1574871651.6025379-270697238693828/ > /dev/null 2>&1 && sleep 0'
[WARNING]: The value 200 (type int) in a string field was converted to u'200' (type string). If this does not look like
what you expect, quote the entire value to ensure it does not change.

[WARNING]: Platform darwin on host nxos-01 is using the discovered Python interpreter at
/usr/bin/python, but future installation of another Python interpreter could change this. See
https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information.

changed: [nxos-01] => {
    "after": [
        {
            "name": "Ethernet2/31",
            "trunk": {
                "allowed_vlans": "200",
                "native_vlan": 99
            }
        }
    ],
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "before": [
        {
            "name": "Ethernet2/31",
            "trunk": {
                "allowed_vlans": "101,104,105,106",
                "native_vlan": 99
            }
        }
    ],
    "changed": true,
    "commands": [
        "interface Ethernet2/31",
        "switchport trunk allowed vlan 200"
    ],
    "invocation": {
        "module_args": {
            "config": [
                {
                    "access": null,
                    "name": "Ethernet2/31",
                    "trunk": {
                        "allowed_vlans": "200",
                        "native_vlan": null
                    }
                }
            ],
            "state": "merged"
        }
    }
}
META: ran handlers
META: ran handlers
 ____________
< PLAY RECAP >
 ------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

nxos-01 : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
```

""" The command generator when state is overridden
        :rtype: A list
        :returns: the commands necessary to migrate the current configuration
                  to the desired configuration
        """
        commands = []
        for h in have:
            h = flatten_dict(h)
            obj_in_want = flatten_dict(search_obj_in_list(h['name'], want, 'name'))
            if h == obj_in_want:
                continue
            for w in want:
                w = flatten_dict(w)
                if h['name'] == w['name']:
                    wkeys = w.keys()
                    hkeys = h.keys()
                    for k in wkeys:
                        if k in self.exclude_params and k in hkeys:
                            del h[k]
            commands.extend(self.del_attribs(h))
        for w in want:
            commands.extend(self.set_commands(flatten_dict(w), have))
        return commands
    def _state_merged(self, w, have):