Upcoming Core [[https://github.com/bitcoin/bitcoin/pull/16443 | 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~~