Abstract low-level lib/ssh with "Remote" interface

A "Remote" interface (lib/remote/remote.go) has been added that
abstracts the relatively low-level lib/ssh and improves the interface
for interacting with hosts geto.

The Remote interface also opens the door for communication backends
other than go.crypto/ssh to be used by geto.  In fact, this changeset
also introduces a new "dummy" backend / Remote implementation.  The
dummy remote doesn't actually access any hosts, and thus facilitates the
unit testing of the Remote interface code.

This changeset begins work on an "ssh remote" (lib/remote/ssh), which
will use the existing low-level lib/ssh.go to access hosts.  There is
also a new ssh-remote-test.go test tool that can be used as a functional
test of the ssh remote to access actual hosts.  The remaining work to
the ssh remote should be minimal; at this point, the ssh remote only
needs to call the underlying lib/ssh code, which has already been done
and tested with the existing ssh-test.go tool.