Fix parallel scp calls stealing sessions

Collapse the global client into its own thing. Instantiate a new client with each call and pass that through the function so the global client is not overwritten halfway through if a new client is instantiated.

Thanks to @pskupinski and @crypticswarm for pointing out the parallel client issue and code fix.