##### SUMMARY
Fetch module fails with path not found error when used with UNC path. 

##### ISSUE TYPE
- ~Bug  Report~
- Feature Idea

##### COMPONENT NAME
Fetch module

##### ANSIBLE VERSION
```
ansible 2.9.2
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/ikanse/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.7.5 (default, Oct 17 2019, 12:09:47) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)]
```

##### CONFIGURATION
```
No changes from the default config
```

##### OS / ENVIRONMENT
```
Control node:
Fedora release 30 (Thirty)
Manged node:
Windows Server 2016 Datacenter
Version: 1607
```
##### STEPS TO REPRODUCE
Create a share on the managed Windows node.

```
- hosts: localhost
  gather_facts: false
  tasks:
    - name: Add hostname supplied by variable to adhoc_group
      add_host:
        name: "HOST"
        groups: adhoc_group
        ansible_user: Administrator
        ansible_password: 'PASSWORD'
        ansible_connection: winrm
        ansible_winrm_transport: basic
        ansible_winrm_server_cert_validation: ignore
        ansible_winrm_connection_timeout: 600
 
- hosts: adhoc_group
  tasks:
  - name: win copy
    win_copy:
      dest: '\\EC2AMAZ-T130RGR\testshare\test123.txt'
      src: testvars.yml

  - name: access file
    fetch:
      src: '\\EC2AMAZ-T130RGR\testshare\test123.txt'
      dest: /tmp/
      flat: yes
```
##### EXPECTED RESULTS
Path is rendered correctly and the file is fetched from the remote server.

##### ACTUAL RESULTS
The path is not rendered correctly by fetch module:
```
"msg": "Path EC2AMAZ-T130RGR\\testshare\\test123.txt is not found"
```
From win_copy module we can see that correct path is used:
```
"dest": "\\\\EC2AMAZ-T130RGR\\testshare\\test123.txt",
```
```
ansible-playbook 2.9.2
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/ikanse/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.7/site-packages/ansible
  executable location = /usr/bin/ansible-playbook
  python version = 3.7.5 (default, Oct 17 2019, 12:09:47) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)]
Using /etc/ansible/ansible.cfg as config file
host_list declined parsing /etc/ansible/hosts as it did not pass its verify_file() method
script declined parsing /etc/ansible/hosts as it did not pass its verify_file() method
auto declined parsing /etc/ansible/hosts as it did not pass its verify_file() method
Parsed /etc/ansible/hosts inventory source with ini plugin
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost
does not match 'all'


PLAYBOOK: main.yml *************************************************************************************
2 plays in main.yml

PLAY [localhost] ***************************************************************************************
META: ran handlers

TASK [Add hostname supplied by variable to adhoc_group] ************************************************
task path: /home/ikanse/ansible/windows/main.yml:5
creating host via 'add_host': hostname=13.235.83.165
changed: [localhost] => {
    "add_host": {
        "groups": [
            "adhoc_group"
        ],
        "host_name": "13.235.83.165",
        "host_vars": {
            "ansible_connection": "winrm",
            "ansible_password": "PASSWORD",
            "ansible_user": "Administrator",
            "ansible_winrm_connection_timeout": 600,
            "ansible_winrm_server_cert_validation": "ignore",
            "ansible_winrm_transport": "basic"
        }
    },
    "changed": true
}
META: ran handlers
META: ran handlers

PLAY [adhoc_group] *************************************************************************************

TASK [Gathering Facts] *********************************************************************************
task path: /home/ikanse/ansible/windows/main.yml:16
Using module file /usr/lib/python3.7/site-packages/ansible/modules/windows/setup.ps1
Pipelining is enabled.
<13.235.83.165> ESTABLISH WINRM CONNECTION FOR USER: Administrator on PORT 5986 TO 13.235.83.165
EXEC (via pipeline wrapper)
ok: [13.235.83.165]
META: ran handlers

TASK [win copy] ****************************************************************************************
task path: /home/ikanse/ansible/windows/main.yml:18
Using module file /usr/lib/python3.7/site-packages/ansible/modules/windows/win_copy.ps1
Pipelining is enabled.
<13.235.83.165> ESTABLISH WINRM CONNECTION FOR USER: Administrator on PORT 5986 TO 13.235.83.165
EXEC (via pipeline wrapper)
ok: [13.235.83.165] => {
    "changed": false,
    "checksum": "4e8bfbc031942c909e62592f6a3e728af39c156c",
    "dest": "\\\\EC2AMAZ-T130RGR\\testshare\\test123.txt",
    "operation": "file_copy",
    "original_basename": "testvars.yml",
    "size": 15,
    "src": "testvars.yml"
}

TASK [access file] *************************************************************************************
task path: /home/ikanse/ansible/windows/main.yml:23
Using module file /usr/lib/python3.7/site-packages/ansible/modules/windows/win_stat.ps1
Pipelining is enabled.
<13.235.83.165> ESTABLISH WINRM CONNECTION FOR USER: Administrator on PORT 5986 TO 13.235.83.165
EXEC (via pipeline wrapper)
Using module file /usr/lib/python3.7/site-packages/ansible/modules/windows/slurp.ps1
Pipelining is enabled.
EXEC (via pipeline wrapper)
fatal: [13.235.83.165]: FAILED! => {
    "changed": false,
    "msg": "Path EC2AMAZ-T130RGR\\testshare\\test123.txt is not found"
}

PLAY RECAP *********************************************************************************************
13.235.83.165              : ok=2    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   
localhost                  : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0  
```

"""
    Takes a byte string like '#< CLIXML\r\n<Objs...' and extracts the stream
    message encoded in the XML data. CLIXML is used by PowerShell to encode
    multiple objects in stderr.
    """
    clixml = ET.fromstring(data.split(b"\r\n", 1)[-1])
    namespace_match = re.match(r'{(.*)}', clixml.tag)
    namespace = "{%s}" % namespace_match.group(1) if namespace_match else ""
    strings = clixml.findall("./%sS" % namespace)
    lines = [e.text.replace('_x000D__x000A_', '') for e in strings if e.attrib.get('S') == stream]
    return to_bytes('\r\n'.join(lines))
class ShellModule(ShellBase):
    
    
    
    COMPATIBLE_SHELLS = frozenset()
    
    SHELL_FAMILY = 'powershell'
    _SHELL_REDIRECT_ALLNULL = '> $null'
    _SHELL_AND = ';'
    
    _IS_WINDOWS = True
    env = dict()
    
    
    
    safe_envkey = re.compile(r'^[\d\w_]{1,255}$')
    
    def assert_safe_env_key(self, key):