Fix: allow Tunnel.Close() to be called multiple times without "panic: close of closed channel"

This change delays the beginning of the `sshKeepAliveTicker` until the goro starts, rather than when the SSH connection is established. So, in theory, the ticker start could be delayed *too* much and fail to keep the tunnel alive. But the likelihood of this happening in practice seems negligible.