```
The gArgs global has several issues:
gArgs is used by each process (bitcoind, bitcoin-qt, bitcoin-wallet,
bitcoin-cli, bitcoin-tx, ...), but it is hard to determine which
arguments are actually used by each process. For example arguments that
have never been registered, but are still used, will always return the
fallback value.
Tests may run several sub-tests, which need different settings. So
globals will have to be overwritten, but that is fragile on its own:
e.g. #19704 (comment) or #19511
The goal is to remove gArgs, but as a first step in that direction this
pull will change gArgs in init to use a passed-in reference instead.
```
Backport of core PR19779.
Depends on D8644 and D8645.