fix(fleetctl): update ssh.Execute to use a PTY

This allows `fleetctl ssh` to work as expected with interactive commands
(like `toolbox`, or even just `bash`).
This change also reworks the error handling to ensure the exit code of
commands run over SSH are correctly propagated back to the client.
Finally, the semantics for copying input/output streams to/from sessions
are cleaned up (IMHO).
refactor(ssh): rip out unused sync and DRY session logic
refactor(ssh): remove Channel since it's no longer used
refactor(ssh): remove unused commit
Merge pull request #340 from jonboulle/340

fleetctl: ssh doesn't do PTY setup correctly