##### SUMMARY
There is no real reason that `UnsafeProxy` needs to exist.  

We need to add unsafe bytes support, and by doing so within `UnsafeProxy` over complicates matters.

`wrap_var` should effectively take over the work that `UnsafeProxy` is doing, and then just rely on `wrap_var` directly using the proper `AnsibleUnsafe*` classes. Or callers can directly use `AnsibleUnsafe*` themselves when `wrap_var` isn't necessary.

##### ISSUE TYPE
- Feature Idea

##### COMPONENT NAME
lib/ansible/utils/unsafe_proxy.py

##### ADDITIONAL INFORMATION
<!--- Describe how the feature would be used, why it is needed and what it would solve -->

<!--- Paste example playbooks or commands between quotes below -->
```yaml

```

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

'''
        Return jinja2 extensions to load.
        If some extensions are set via jinja_extensions in ansible.cfg, we try
        to load them with the jinja environment.
        '''
        jinja_exts = []
        if C.DEFAULT_JINJA2_EXTENSIONS:
            
            
            jinja_exts = C.DEFAULT_JINJA2_EXTENSIONS.replace(" ", "").split(',')
        return jinja_exts
    @property
    def available_variables(self):
        return self._available_variables
    @available_variables.setter
    def available_variables(self, variables):
        '''
        Sets the list of template variables this Templar instance will use
        to template things, so we don't have to pass them around between
        internal methods. We also clear the template cache here, as the variables
        are being changed.
        '''
        if not isinstance(variables, dict):
            raise AnsibleAssertionError("the type of 'variables' should be a dict but was a %s" % (type(variables)))
        self._available_variables = variables
        self._cached_result = {}
    def set_available_variables(self, variables):