Add Args.Swap command for swapping arguments

The usecase:
my-cli user `<USERID>` set `<FIELD>` `<VALUE>`

Being able to swap `<USERID>` with `set` argument, we can have nested subcommands while preserving all variable arguments along the way.