ConnectBlock()
relies on validation that happens in ContextualCheckBlock()
and
ContextualCheckBlockHeader()
. This has implications for implementing consensus
changes and handling software upgrade to ensure that nodes upgrading their
software end up enforcing all the consensus rules.