Clean up ssh code considerably. It's working.

Refactored most of the ssh.go code to land in a couple objects that make managing
all the connections pretty clean. SshConnMgr is a collection of sshConn. SshCmd
structs can be sent across sshConn.command and they'll execute with fully async
stdio. Now to figure out how to hook up output handlers.

Also added a helper on options.go to turn a gdshList into a list of ssh addresses,
but still with a hard-coded port 22.

al        76293  72415  76293  0    5 21:29 pts/13   00:00:00 ./gdsh run -c cat
al        76293  72415  76294  0    5 21:29 pts/13   00:00:00 ./gdsh run -c cat
al        76293  72415  76295  0    5 21:29 pts/13   00:00:00 ./gdsh run -c cat
al        76293  72415  76296  0    5 21:29 pts/13   00:00:00 ./gdsh run -c cat
al        76293  72415  76301  0    5 21:29 pts/13   00:00:00 ./gdsh run -c cat
root      76297    387  76297  0    1 21:29 ?        00:00:00 sshd: al [priv]
root      76298    387  76298  0    1 21:29 ?        00:00:00 sshd: al [priv]
al        76302  76298  76302  0    1 21:29 ?        00:00:00 sshd: al@notty
al        76303  76302  76303  0    1 21:29 ?        00:00:00 cat
al        76304  76297  76304  0    1 21:29 ?        00:00:00 sshd: al@notty
al        76305  76304  76305  0    1 21:29 ?        00:00:00 cat
al        76307  48300  76307  0    1 21:29 pts/9    00:00:00 ps -efL