This is a partial backport of core#25648
> Combine datacarrier globals into one
https://github.com/bitcoin/bitcoin/pull/25648/commits/fa2a6b8516b24d7e9ca11926a49cf2b07f661e81
> Pass datacarrier setting into IsStandard
https://github.com/bitcoin/bitcoin/pull/25648/commits/fad0b4fab849eb5f1f0aa54ebc290f85a473ec91
> Remove global
https://github.com/bitcoin/bitcoin/pull/25648/commits/66664384a6fec39ecb4d8d06db66a4f193a06e33
Notable differences from the source material:
- we already removed `::nMaxDatacarrierBytes` in D1419
- the avalanche code also relies on `IsStandard` for verifying proofs. We work around the issue for by accessing the datacarrier params via `gArgs`, as the peermanager and processor code already relies on that global. In the future we could remove this `gArgs` dependency by either passing an `ArgsManager` param to `PeerManager` and `Processor`, or by passing this data via `AvalancheOptions` struct in a similar way that is done with `MemPoolOptions`
Depends on D15777