Restart the SSH tunnel if it dies (#1148)
Restart the SSH tunnel if it dies (#1148)

This change splits the SSH tunnel creation into a helper method.

That helper method can then be called by a background process that continuously checks the SSH process.

That background process can then restart the SSH tunnel if it dies.

This fixes #969, and may at least help with #1054.
googledatalab/datalab,craigcitro/datalab,yebrahim/datalab,craigcitro/datalab,googledatalab/datalab,craigcitro/datalab,parthea/datalab,parthea/datalab,parthea/datalab,parthea/datalab,googledatalab/datalab,googledatalab/datalab,yebrahim/datalab,yebrahim/datalab,googledatalab/datalab,parthea/datalab,craigcitro/datalab,parthea/datalab,yebrahim/datalab,yebrahim/datalab,craigcitro/datalab,googledatalab/datalab