<!--- 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

category_name, tag_name = tag.split(":", 1)
                category_obj = self.search_svc_object_by_name(self.category_service, category_name)
                if not category_obj:
                    self.module.fail_json(msg="Unable to find the category %s" % category_name)
            else:
                
                tag_name = tag
            if category_name:
                tag_obj = self.get_tag_by_category(tag_name=tag_name, category_name=category_name)
            else:
                tag_obj = self.get_tag_by_name(tag_name=tag_name)
            if not tag_obj:
                self.module.fail_json(msg="Unable to find the tag %s" % tag_name)
            if action in ('add', 'present'):
                if tag_obj not in available_tag_obj:
                    
                    try:
                        self.tag_association_svc.attach(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))
            elif action == 'set':
                
                try:
                    if not removed_tags_for_set:
                        for av_tag in available_tag_obj:
                            self.tag_association_svc.detach(tag_id=av_tag.id, object_id=self.dynamic_managed_object)
                        removed_tags_for_set = True
                    self.tag_association_svc.attach(tag_id=tag_obj.id, object_id=self.dynamic_managed_object)