##### SUMMARY
KeyError: 'templates' on second run

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
zabbix_template

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.9.2
  config file = /mnt/d/Code/gitlab/zabbix-servers/ansible/ansible.cfg
  configured module search path = ['/home/fism/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /mnt/d/Code/gitlab/zabbix-servers/venv/lib/python3.6/site-packages/ansible
  executable location = /mnt/d/Code/gitlab/zabbix-servers/venv/bin/ansible
  python version = 3.6.9 (default, Nov  7 2019, 10:44:02) [GCC 8.3.0]
```

##### STEPS TO REPRODUCE
On first run the new template is created
```yaml
- name: "create test template"
      zabbix_template:
        server_url: "{{ zabbix_apiserver_url }}"
        login_user: "{{ zabbix_apiuser_rw }}"
        login_password: "{{ zabbix_apipassword_rw }}"
        state: present
        template_name: test1
        template_groups:
          - "Templates"
```
If you run it a second time errors are thrown.

##### EXPECTED RESULTS
The second run should succeed without changes.

##### ACTUAL RESULTS
```shell
The full traceback is:
Traceback (most recent call last):
  File "<stdin>", line 102, in <module>
  File "<stdin>", line 94, in _ansiballz_main
  File "<stdin>", line 40, in invoke_module
  File "/usr/lib/python3.6/runpy.py", line 205, in run_module
    return _run_module_code(code, init_globals, run_name, mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 96, in _run_module_code
    mod_name, mod_spec, pkg_name, script_name)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmp/ansible_zabbix_template_payload_9t34ekm5/ansible_zabbix_template_payload.zip/ansible/modules/zabbix_template.py", line 743, in <module>
  File "/tmp/ansible_zabbix_template_payload_9t34ekm5/ansible_zabbix_template_payload.zip/ansible/modules/zabbix_template.py", line 727, in main
  File "/tmp/ansible_zabbix_template_payload_9t34ekm5/ansible_zabbix_template_payload.zip/ansible/modules/zabbix_template.py", line 398, in check_template_changed
KeyError: 'templates'

fatal: [localhost]: FAILED! => {
    "changed": false,
    "module_stderr": "Traceback (most recent call last):\n  File \"<stdin>\", line 102, in <module>\n  File \"<stdin>\", line 94, in _ansiballz_main\n  File \"<stdin>\", line 40, in invoke_module\n  F
ile \"/usr/lib/python3.6/runpy.py\", line 205, in run_module\n    return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/usr/lib/python3.6/runpy.py\", line 96, in _run_module_code\
n    mod_name, mod_spec, pkg_name, script_name)\n  File \"/usr/lib/python3.6/runpy.py\", line 85, in _run_code\n    exec(code, run_globals)\n  File \"/tmp/ansible_zabbix_template_payload_9t34ekm5/ansi
ble_zabbix_template_payload.zip/ansible/modules/zabbix_template.py\", line 743, in <module>\n  File \"/tmp/ansible_zabbix_template_payload_9t34ekm5/ansible_zabbix_template_payload.zip/ansible/modules/
zabbix_template.py\", line 727, in main\n  File \"/tmp/ansible_zabbix_template_payload_9t34ekm5/ansible_zabbix_template_payload.zip/ansible/modules/zabbix_template.py\", line 398, in check_template_ch
anged\nKeyError: 'templates'\n",
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 1
}
```

This is what the existing_template variable looks like
```json
{
    'zabbix_export':
    {
        'version': '4.4',
        'date': '2020-01-13T14: 47: 28Z',
        'groups': [
            {
                'name': 'Templates'
            }
        ],
        'templates': [
            {
                'template': 'fismc',
                'name': 'fismc',
                'groups': [
                    {
                        'name': 'Templates'
                    }
                ],
                'items': [
                    {
                        'name': 'asdf',
                        'key': 'asdf'
                    }
                ]
            }
        ]
    }
}
```

So it seams that it fails if there aren't other templates linked.
"""Filters out keys from XML template that may wary between exports (e.g date or version) and
        keys that are not imported via this module.
        It is advised that provided XML template exactly matches XML structure used by Zabbix"""
        
        parsed_xml_root = self.load_xml_template(template_xml.strip())
        keep_keys = ['graphs', 'templates', 'triggers', 'value_maps']
        
        for node in list(parsed_xml_root):
            if node.tag not in keep_keys:
                parsed_xml_root.remove(node)
        
        for template in list(parsed_xml_root.find('templates')):
            for element in list(template):
                if element.text is None and len(list(element)) == 0:
                    template.remove(element)
        
        xml_root_text = list(line.strip() for line in ET.tostring(parsed_xml_root).split('\n'))
        return ''.join(xml_root_text)
    def load_json_template(self, template_json):