rust-matchers: add `IgnoreMatcher`
This is a big change but all of the pieces call each other, so it makes sense
to have this all in one patch.
Differential Revision: https://phab.mercurial-scm.org/D7925
#require black $ cd $RUNTESTDIR/.. $ black --config=black.toml --check --diff `hg files 'set:(**.py + grep("^#!.*python")) - mercurial/thirdparty/**'`