For every peer expose through `getpeerinfo` RPC whether or not we selected them as HB peers, and whether or not they selected us as HB peers.

Suggestion by @gmaxwell.
assert(pindex);
        UpdateBlockAvailability(pfrom.GetId(), pindex->GetBlockHash());
        CNodeState *nodestate = State(pfrom.GetId());
        
        
        if (received_new_header && pindex->nChainWork > ::ChainActive().Tip()->nChainWork) {
            nodestate->m_last_block_announcement = GetTime();
        }
        std::map<uint256, std::pair<NodeId, std::list<QueuedBlock>::iterator> >::iterator blockInFlightIt = mapBlocksInFlight.find(pindex->GetBlockHash());
        bool fAlreadyInFlight = blockInFlightIt != mapBlocksInFlight.end();
        if (pindex->nStatus & BLOCK_HAVE_DATA) 
            return;
        if (pindex->nChainWork <= ::ChainActive().Tip()->nChainWork || 
                pindex->nTx != 0) { 
            if (fAlreadyInFlight) {
                
                
                std::vector<CInv> vInv(1);
                vInv[0] = CInv(MSG_BLOCK | GetFetchFlags(pfrom), cmpctblock.header.GetHash());
                m_connman.PushMessage(&pfrom, msgMaker.Make(NetMsgType::GETDATA, vInv));
            }
            return;
        }
        
        if (!fAlreadyInFlight && !CanDirectFetch(m_chainparams.GetConsensus()))
            return;
        if (IsWitnessEnabled(pindex->pprev, m_chainparams.GetConsensus()) && !nodestate->fSupportsDesiredCmpctVersion) {
            
            
            return;