##### SUMMARY
Rendering  string 
```
config:
      service: !unsafe '{{ SYSLOG_IDENTIFIER }}'
```
with
```
- name: place config
  copy:
    content: |
      {{ config | to_toml }}
    dest: "{{ config_file }}"
```
leads to 
```
service = [ "{", "{", " ", "S", "Y", "S", "L", "O", "G", "_", "I", "D", "E", "N", "T", "I", "F", "I", "E", "R", " ", "}", "}",]
```
instead of 
```
service = "{{ SYSLOG_IDENTIFIER }}"
```
I understand that filter to_toml is not part of ansible and get from https://github.com/sivel/toiletwater but in code of it it uses ansible code in import section.
https://github.com/sivel/toiletwater/blob/master/plugins/filter/toml.py#L10


##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
to_toml

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
 % ansible --version
ansible 2.9.11
  config file = None
  configured module search path = ['/home/ashirokih/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/ashirokih/python/lib/python3.8/site-packages/ansible
  executable location = /home/ashirokih/python/bin/ansible
  python version = 3.8.2 (default, Jul 16 2020, 14:00:26) [GCC 9.3.0]

```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
empty
```

##### OS / ENVIRONMENT
not relevant


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

<!--- Paste example playbooks or commands between quotes below -->
Rendering  string 
```yaml
config:
      service: !unsafe '{{ SYSLOG_IDENTIFIER }}'
```
with
```yaml
- name: place config
  copy:
    content: |
      {{ config | to_toml }}
    dest: "{{ config_file }}"
```
<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS
```
service = "{{ SYSLOG_IDENTIFIER }}"
```


##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->

<!--- Paste verbatim command output between quotes -->
```paste below
service = [ "{", "{", " ", "S", "Y", "S", "L", "O", "G", "_", "I", "D", "E", "N", "T", "I", "F", "I", "E", "R", " ", "}", "}",]
```

Probably i should ask @sivel 
"""Older versions of the ``toml`` python library, don't have a pluggable
    way to tell the encoder about custom types, so we need to ensure objects
    that we pass are native types.
    Only used on ``toml<0.10.0`` where ``toml.TomlEncoder`` is missing.
    This function recurses an object and ensures we cast any of the types from
    ``ansible.parsing.yaml.objects`` into their native types, effectively cleansing
    the data before we hand it over to ``toml``
    This function doesn't directly check for the types from ``ansible.parsing.yaml.objects``
    but instead checks for the types those objects inherit from, to offer more flexibility.
    """
    if isinstance(obj, dict):
        return dict((k, convert_yaml_objects_to_native(v)) for k, v in obj.items())
    elif isinstance(obj, list):
        return [convert_yaml_objects_to_native(v) for v in obj]
    elif isinstance(obj, text_type):
        return text_type(obj)
    else:
        return obj
class InventoryModule(BaseFileInventoryPlugin):
    NAME = 'toml'
    def _parse_group(self, group, group_data):
        if not isinstance(group_data, (MutableMapping, type(None))):
            self.display.warning("Skipping '%s' as this is not a valid group definition" % group)
            return
        group = self.inventory.add_group(group)
        if group_data is None:
            return
        for key, data in group_data.items():
            if key == 'vars':
                if not isinstance(data, MutableMapping):