<!--- Verify first that your feature was not already discussed on GitHub -->
<!--- Complete *all* sections as described, this form is processed automatically -->

##### SUMMARY
VMWare supports using colons in VMWare tags, however the vmware_tag_manager module does not since colons are used to delineate categories.  It would be nice if there was some way to support using colons in tag names.

##### ISSUE TYPE
- Feature Idea

##### COMPONENT NAME
vmware_tag_manager

##### ADDITIONAL INFORMATION
There should be some way to escape a colon in a tag_name so that we can continue to support categories but intentionally override that functionality when we intend to use a tag with a colon within.  Two tag examples below.  One with category, one escaping for instance.  Feel free to use whatever escape sequence is most supportable.

```  - name: Add tags to a virtual machine
    vmware_tag_manager:
      hostname: '{{ vcenter_hostname }}'
      username: '{{ vcenter_username }}'
      password: '{{ vcenter_password }}'
      validate_certs: no
      tag_names:
        -  'Category:Tag'
        -  'TagWith\:Colon'
      object_name: 'VMGuest'
      object_type: VirtualMachine
      state: add
    delegate_to: localhost
```

Including the authors:
@Akasurde 
@GBrawl

changed = True
                except Error as error:
                    self.module.fail_json(msg="%s" % self.get_error_message(error))
            elif action in ('remove', 'absent'):
                if tag_obj in available_tag_obj:
                    try:
                        self.tag_association_svc.detach(tag_id=tag_obj.id, object_id=self.dynamic_managed_object)
                        changed = True
                    except Error as error:
                        self.module.fail_json(msg="%s" % self.get_error_message(error))
        _temp_curr_tags = ["%s:%s" % (tag['category_name'], tag['name']) for tag in self.get_tags_for_dynamic_obj(self.dynamic_managed_object)]
        results['tag_status']['current_tags'] = _temp_curr_tags
        results['changed'] = changed
        self.module.exit_json(**results)
def main():
    argument_spec = VmwareRestClient.vmware_client_argument_spec()
    argument_spec.update(
        tag_names=dict(type='list', required=True),
        state=dict(type='str', choices=['absent', 'add', 'present', 'remove', 'set'], default='add'),
        object_name=dict(type='str', required=True),
        object_type=dict(type='str', required=True, choices=['VirtualMachine', 'Datacenter', 'ClusterComputeResource',
                                                             'HostSystem', 'DistributedVirtualSwitch',
                                                             'DistributedVirtualPortgroup']),
    )
    module = AnsibleModule(argument_spec=argument_spec)
    vmware_tag_manager = VmwareTagManager(module)
    vmware_tag_manager.ensure_state()
if __name__ == '__main__':
    main()