message: [Core] Restore CheckBlock checks before previous block check
  in ProcessNewBlock (as it was before nStakeModifierV2) to avoid possible
  syncing issues.
diff: @@ -5169,6 +5169,15 @@ void CBlockIndex::BuildSkip()
  bool ProcessNewBlock(CValidationState& state, CNode* pfrom, CBlock* pblock, CDiskBlockPos* dbp)
  {
  + // Preliminary checks
  + int64_t nStartTime = GetTimeMillis();
  +
  + // check block
  + bool checked = CheckBlock(*pblock, state);
  +
  + if (!CheckBlockSignature(*pblock))
  + return error("%s : bad proof-of-stake block signature", __func__);
  +
  if (pblock->GetHash() != Params().HashGenesisBlock() && pfrom != NULL) {
  //if we get this far, check if the prev block is our prev block, if not then request sync and return false
  BlockMap::iterator mi = mapBlockIndex.find(pblock->hashPrevBlock);
  @@ -5178,15 +5187,6 @@ bool ProcessNewBlock(CValidationState& state, CNode* pfrom, CBlock* pblock, CDis
  }
  }
  - // Preliminary checks
  - int64_t nStartTime = GetTimeMillis();
  -
  - // check block
  - bool checked = CheckBlock(*pblock, state);
  -
  - if (!CheckBlockSignature(*pblock))
  - return error("ProcessNewBlock() : bad proof-of-stake block signature");
  -
  {
  LOCK(cs_main);
  