Vagrant completion updates

Improved vagrant completions for some commands to avoid spurious completions, and added completions for some missing Vagrant commands.
Eh, when it works. It's basically equivalent to just

```fish
set -l cmd_main $argv[1]
set -l cmd_sub $argv[2]
```

except without array out of bound index errors.

But if you need to conditionally parse out flags or suchlike, it can end up being more annoying to work with than just `$argv`.