Port latest batch of cukes from master to gh

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

/cc @jingweno
That's correct, the code `init()` will be also executed. If you're looking for lazy-loaded ssh configs, we could just do variable caching in a method, say:

```go
var sshConfigs map[string]string
func readSshConfigs() map[string]string {
  if sshConfigs == nil {
     sshConfigs = make(map[string]string)
     // read ssh configs
  }

  return sshConfigs
}
```

Even better:

```go
type SshConfigs map[string]string
var sshConfigs SshConfigs
func readSshConfigs() SshConfigs {
  if sshConfigs == nil {
     sshConfigs = make(map[string]string)
     // read ssh configs
  }

  return sshConfigs
}
```