Upcoming Core PR16443 adds g_chainstate to validation.cpp, this caused a bit of a havoc with initializaion order of pindexFinalized (also declared in validation.cpp) so I took this opportunity to encapsulate the finalizedBlockIndex pointer into CChainState
additionally:
- moved an assertion that cs_main lock must be held down to where the actual pointer is accessed, to guarantee that all code paths trigger that.
added an assert to prevent users from changing the finalizationBlockIndex pointer to nullptr