Rewrite nrepl connection logic

- Extract networking functionality (`nrepl-connect`, `nrepl--direct-connect`,  `nrepl--ssh-tunnel-connect`)

- Always try a direct connection with remote hosts before attempting a ssh tunnel.