Vagrant completion updates

Improved vagrant completions for some commands to avoid spurious completions, and added completions for some missing Vagrant commands.
Actually the whole function can be simplified again:

```fish
function __fish_vagrant_using_subcommand --arguments cmd_main cmd_sub
    set -l cmd (commandline -opc)
   set -q cmd[3]; and test "$cmd_main" = $cmd[2] -a "$cmd_sub" = $cmd[3]
end
```

Looks like the `if [ $cmd_main ...` command was actually wrong to begin with, since it was using an `; and` in the condition without a `begin`/`end` block. Which is to say, it was never actually testing that the subcommand was correct.