message: Make tx relay data structure use std::chrono types
diff: #include <kernel.h>
  /** How long to cache transactions in mapRelay for normal relay */
  -static constexpr std::chrono::seconds RELAY_TX_CACHE_TIME = std::chrono::minutes{15};
  +static constexpr auto RELAY_TX_CACHE_TIME = 15min;
  /** How long a transaction has to be in the mempool before it can unconditionally be relayed (even when not in mapRelay). */
  -static constexpr std::chrono::seconds UNCONDITIONAL_RELAY_DELAY = std::chrono::minutes{2};
  +static constexpr auto UNCONDITIONAL_RELAY_DELAY = 2min;
  /** Headers download timeout.
  * Timeout = base + per_header * (expected number of headers) */
  static constexpr auto HEADERS_DOWNLOAD_TIMEOUT_BASE = 15min;
  @@ -447,7 +447,7 @@ private:
  typedef std::map<uint256, CTransactionRef> MapRelay;
  MapRelay mapRelay GUARDED_BY(cs_main);
  /** Expiration-time ordered list of (expire time, relay map entry) pairs. */
  - std::deque<std::pair<int64_t, MapRelay::iterator>> vRelayExpiration GUARDED_BY(cs_main);
  + std::deque<std::pair<std::chrono::microseconds, MapRelay::iterator>> g_relay_expiration GUARDED_BY(cs_main);
  /**
  * When a peer sends us a valid block, instruct it to announce blocks to us
  @@ -4697,20 +4697,20 @@ bool PeerManagerImpl::SendMessages(CNode* pto)
  nRelayedTransactions++;
  {
  // Expire old relay messages
  - while (!vRelayExpiration.empty() && vRelayExpiration.front().first < count_microseconds(current_time))
  + while (!g_relay_expiration.empty() && g_relay_expiration.front().first < current_time)
  {
  - mapRelay.erase(vRelayExpiration.front().second);
  - vRelayExpiration.pop_front();
  + mapRelay.erase(g_relay_expiration.front().second);
  + g_relay_expiration.pop_front();
  }
  auto ret = mapRelay.emplace(txid, std::move(txinfo.tx));
  if (ret.second) {
  - vRelayExpiration.emplace_back(count_microseconds(current_time + std::chrono::microseconds{RELAY_TX_CACHE_TIME}), ret.first);
  + g_relay_expiration.emplace_back(current_time + RELAY_TX_CACHE_TIME, ret.first);
  }
  // Add wtxid-based lookup into mapRelay as well, so that peers can request by wtxid
  auto ret2 = mapRelay.emplace(wtxid, ret.first->second);
  if (ret2.second) {
  - vRelayExpiration.emplace_back(count_microseconds(current_time + std::chrono::microseconds{RELAY_TX_CACHE_TIME}), ret2.first);
  + g_relay_expiration.emplace_back(current_time + RELAY_TX_CACHE_TIME, ret2.first);
  }
  }
  if (vInv.size() == MAX_INV_SZ) {
  