##### SUMMARY
When using SSH against a Windows host with PowerShell v5 the stderr when pipelining is not being used contains a nested CLIXML message in the stderr. We should be able to handle this correctly and not fail.

Currently I can only explicitly disable pipelining for Windows as it should always be enabled but there is a report where this has happened in the wild so it's not unheard of https://github.com/ansible/awx/issues/6990.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
ssh
powershell

##### ANSIBLE VERSION
```paste below
devel
```

##### CONFIGURATION
Not sure yet, need to figure out how pipelining was disabled on the Windows case.

##### OS / ENVIRONMENT
Targeting Windows Server with PowerShell v5 and the SSH default shell is `powershell.exe`


##### STEPS TO REPRODUCE
Not sure yet, can only replicate by connecting to SSH on a WIndows host and manually changing https://github.com/ansible/ansible/blob/devel/lib/ansible/plugins/connection/ssh.py#L464 to False.

##### EXPECTED RESULTS
Works just fine


##### ACTUAL RESULTS
Fails because the stderr looks like (see nested CLIXML header)
```paste below
b'#< CLIXML\r\n#< CLIXML\r\n<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>Preparing modules for first use.</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs><Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Obj S="progress" RefId="0"><TN RefId="0"><T>System.Management.Automation.PSCustomObject</T><T>System.Object</T></TN><MS><I64 N="SourceId">1</I64><PR N="Record"><AV>Preparing modules for first use.</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj><Obj S="progress" RefId="1"><TNRef RefId="0" /><MS><I64 N="SourceId">2</I64><PR N="Record"><AV>Preparing modules for first use.</AV><AI>0</AI><Nil /><PI>-1</PI><PC>-1</PC><T>Completed</T><SR>-1</SR><SD> </SD></PR></MS></Obj></Objs>')
```

path = self._unquote(path)
        return path.endswith('/') or path.endswith('\\')
    def chmod(self, paths, mode):
        raise NotImplementedError('chmod is not implemented for Powershell')
    def chown(self, paths, user):
        raise NotImplementedError('chown is not implemented for Powershell')
    def set_user_facl(self, paths, user, mode):
        raise NotImplementedError('set_user_facl is not implemented for Powershell')
    def remove(self, path, recurse=False):
        path = self._escape(self._unquote(path))
        if recurse:
            return self._encode_script('''Remove-Item "%s" -Force -Recurse;''' % path)
        else:
            return self._encode_script('''Remove-Item "%s" -Force;''' % path)
    def mkdtemp(self, basefile=None, system=False, mode=None, tmpdir=None):
        
        
        if not basefile:
            basefile = self.__class__._generate_temp_dir_name()
        basefile = self._escape(self._unquote(basefile))
        basetmpdir = tmpdir if tmpdir else self.get_option('remote_tmp')
        script = '''
        $tmp_path = [System.Environment]::ExpandEnvironmentVariables('%s')
        $tmp = New-Item -Type Directory -Path $tmp_path -Name '%s'
        Write-Output -InputObject $tmp.FullName
        ''' % (basetmpdir, basefile)
        return self._encode_script(script.strip())
    def expand_user(self, user_home_path, username=''):