validation: introduce unused ChainstateManager
Summary:
ChainstateManager is responsible for creating and managing multiple chainstates, and will provide a high-level interface for accessing the appropriate chainstate based upon a certain use.
Partial backport (2/5) of core PR17737:
https://github.com/bitcoin/bitcoin/pull/17737/commits/89cdf4d5692d396b8c7177b3918aa9dab07f9624
Depends on D8537.
Test Plan:
ninja all check-all
Reviewers: #bitcoin_abc, PiRK
Reviewed By: #bitcoin_abc, PiRK
Differential Revision: https://reviews.bitcoinabc.org/D8538