rust: update `clap` to the latest 4.x version
This brings in more up-to-date dependencies, some bug fixes (none of which are
relevant yet), and slightly improved compile times.
skip ignored directories if -i or --all not specified
$ hg init t
$ cd t
$ echo 'ignored' > .hgignore
$ hg ci -qA -m init -d'2 0'
$ mkdir ignored
$ ls
ignored
$ hg purge -v --no-confirm
$ ls
ignored