refactor, txdb: Add CoinsViewOptions struct
Summary:
PR rationale:
Code in the libbitcoin_kernel library should not be calling ArgsManager methods or trying to read options from the command line. Instead it should just get options values from simple structs and function arguments that are passed in externally. This PR removes gArgs accesses from dbwrapper and txdb modules by defining appropriate options structs.
Add CoinsViewOptions struct to remove ArgsManager uses from txdb.
To reduce size of this commit, this moves references to gArgs variable out of
txdb.cpp to calling code in validation.cpp. But these moves are temporary. The
gArgs references in validation.cpp are moved out to calling code in init.cpp in
later commits.
This commit does not change behavior.
This is a partial backport of core#25862
https://github.com/bitcoin/bitcoin/pull/25862/commits/c00fa1a7341d3f47f992e0beb043da655cbca777
Depends on D16091
Test Plan:
with bitcoin-chainstate compilation enabled:
ninja all check-all
Reviewers: #bitcoin_abc, Fabien
Reviewed By: #bitcoin_abc, Fabien
Differential Revision: https://reviews.bitcoinabc.org/D16092