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.
if (AlreadyHaveTx(GenTxid(true, wtxid), m_mempool)) {
            if (pfrom.HasPermission(PF_FORCERELAY)) {
                
                
                
                if (!m_mempool.exists(tx.GetHash())) {
                    LogPrintf("Not relaying non-mempool transaction %s from forcerelay peer=%d\n", tx.GetHash().ToString(), pfrom.GetId());
                } else {
                    LogPrintf("Force relaying tx %s from peer=%d\n", tx.GetHash().ToString(), pfrom.GetId());
                    RelayTransaction(tx.GetHash(), tx.GetWitnessHash(), m_connman);
                }
            }
            return;
        }
        TxValidationState state;
        std::list<CTransactionRef> lRemovedTxn;
        if (AcceptToMemoryPool(m_mempool, state, ptx, &lRemovedTxn, false )) {
            m_mempool.check(&::ChainstateActive().CoinsTip());
            
            
            m_txrequest.ForgetTxHash(tx.GetHash());