feat(task): support exclusion groups in task name wildcards (#34506)
Adds a `(!a|b|c)` exclusion syntax to `deno task` wildcard patterns,
modeled after [concurrently][cc]. For example,
`deno task "test:*(!e2e|interactive)"` now matches `test:unit` and
`test:integration` but skips `test:e2e` and `test:interactive`.
The exclusion group is parsed off the end of the argument, and each
listed value is matched against what a `*` in the pattern captured. A
pattern without a `*` but with a `(!...)` group is rejected, since
there is nothing to exclude from.
This is the common case from #29355; more elaborate forms (multiple
exclusion groups, sub-wildcards inside the group) are intentionally
not handled.
Closes #29355.