message: Use DbgAssert to ensure that there is an orphan before continuing
  When processing mapOrphanTransactionByPrev make sure there is a matching
  orphan in the orphan pool before we continue.  This should never happen
  because when we erase orphans we also erase OrphanTransactionsByPrev but
  we include this as an added safeguard.
diff: @@ -6183,6 +6183,15 @@ bool ProcessMessage(CNode *pfrom, std::string strCommand, CDataStream &vRecv, in
  for (std::set<uint256>::iterator mi = itByPrev->second.begin(); mi != itByPrev->second.end(); ++mi)
  {
  const uint256 &orphanHash = *mi;
  +
  + // Make sure we actually have an entry on the orphan cache. While this should never fail because
  + // we always erase orphans and any mapOrphanTransactionsByPrev at the same time, still we need to
  + // be sure.
  + bool fOk = true;
  + DbgAssert(mapOrphanTransactions.count(orphanHash), fOk = false);
  + if (!fOk)
  + continue;
  +
  const CTransaction &orphanTx = mapOrphanTransactions[orphanHash].tx;
  NodeId fromPeer = mapOrphanTransactions[orphanHash].fromPeer;
  bool fMissingInputs2 = false;
  