Extracting functionality from original ssh-tunnel module to ssh-connection module as well, to make more portable
Further refactoring and separation