Instead of (ab)using the existing `BlockValidity` flags to mark CBlockIndex entries which
we haven't yet fully validated (but assume validity for use with UTXO snapshot
loading), introduce a status flag that specifically marks an assumed-valid state.
This state is then removed in RaiseValidity() when the block has actually been
validated.
This distinction will allow us to make the necessary changes to various parts of the
system to facilitate assumeutxo/background chainstate validation but without leaking
details like snapshot height, as we had done previously.
Changes that actually make use of this flag follow in future commits.
This is a backport of core#21526 [4/12]
https://github.com/bitcoin/bitcoin/pull/21526/commits/42b2520db93fd9feb3df4101654391fa7d3e2140
Depends on D12278