A BitcoinTestFramework child class which can be imported by an external user or
project. TestShell.setup() initiates an underlying BitcoinTestFramework object
with bitcoind subprocesses, rpc interfaces and test logging.
TestShell.shutdown() safely tears down the BitcoinTestFramework object.
This is a backport of Core PR17288 [6/7]
https://github.com/bitcoin/bitcoin/pull/17288/commits/f5112369cf91451d2d0bf574a9bfdaea04696939
Depends on D8245