Add private key support

I've implemented basic private key support (Issue #2).

Probably should be refactored at some point as the connection code is the same for sftp and sshexec, probably make sense to have one common "connection" object and extend it for sftp, but in the meantime this seems to work.