Port latest batch of cukes from master to gh

:warning: This is my work in progress; some cukes still fail

/cc @jingweno
I'm doing this twice in this method, leading to duplication of logic. I would like to push it to a lower level, maybe inside `git.ParseURL` itself to eliminate the duplication, but I'm wondering how could every call to `git.ParseURL` call `readSshConfig` once and memoize its result so that we never read from `~/.ssh/config` more than once. Any ideas?