The ssh-completion didn't work when I first tried to source it. Turned
out that `reduce` failed when `$includes` was an empty list:
```nushell
$includes | par-each {|p| $p | open --raw | process } | reduce {|it| merge deep $it --strategy=append }
```
The change proposed in this PR fixes the problem so the completion also
works if there are no includes in the ssh config files. I'm a total
nushell beginner though, so I'm not sure if it's the best or the most
idiomatic way to solve the problem :)
In my machine, the SSH host definitions are spread over many files and
the old implementation is slow to give auto-complete.
This PR is to improve the speed.
Sometimes, we have so many SSH servers that divide to extra config files
and include in *~/.ssh/config*
This PR follow the `Include` directive to retrieve more hosts.
Example of such config:
```ssh_config
Include extra/agriconnect
Include "extra/Old servers"
```
This PR also fix an issue that orginal code grabs this:
```ssh_config
Host *
```
I am sorry. I assumed that an SSH host in the config file must contain a
hostname, but this assumption is not true.
If a user reads an SSH host that doesn't contain a hostname, it will
fail to parse.