Non-primary subcommands

This enables plugins to define commands that are "non-primary": they won't be listed in the `vagrant -h` output, and are therefore somewhat hidden. The utility in this is that uncommon commands or commands that aren't friendly to beginners can be hidden. The full list of commands can be seen by executing `vagrant list-commands`.

As of this PR, no command uses this functionality (except `list-commands`). In the future, I'm going to introduce some non-primary commands for specialized tasks such as forcing a re-rsync.