Support subcommands having their own version arguments

Currently it is impossible to have an argument called `-version`, `-v`, or `--version` for any subcommands. I have a CLI tool that accepts passing in a version number using the `-version` flag, which worked until 6705537, possibly by mistake.

Basically, the `-v`, `-version`, and `--version` arguments, even if given for a subcommand, trigger the version to be displayed. I would have expected this would be the case only when no subcommand was given like this:

```
# Dumps version
./cli -v
./cli -version
./cli --version

# Lets subcommand handle the flag
./cli sub -v
./cli sub -version
./cli sub --version
```