Extract SSH connection library

This was originally a PR to replace net-ssh with SSHjr, but due to some interesting bugs in SSHjr, it now adds support for using different SSH connection libraries, and adds support for SSHjr without changing the default.

This PR also contains the code needed to add support for Sauce Labs VMs (yeah, I know, a lot of functionality for a single PR, but whatever).