message: [doc] Clarify semantic of peer's m_protect w.r.t to outbound eviction logics
  The field m_protect is used to protect from eviction both by bad/lagging
  chain and extra outbound peers logics. Outbound block-relay peers are
  always excluded from this protection.
diff: @@ -343,10 +343,17 @@ struct CNodeState {
  */
  bool fSupportsDesiredCmpctVersion;
  - /** State used to enforce CHAIN_SYNC_TIMEOUT
  - * Only in effect for outbound, non-manual, full-relay connections, with
  - * m_protect == false
  - * Algorithm: if a peer's best known block has less work than our tip,
  + /** State used to enforce CHAIN_SYNC_TIMEOUT and EXTRA_PEER_CHECK_INTERVAL logic.
  + *
  + * Both are only in effect for outbound, non-manual, non-protected connections.
  + * Any peer protected (m_protect = true) is not chosen for eviction. A peer is
  + * marked as protected if all of these are true:
  + * - its connection type is IsBlockOnlyConn() == false
  + * - it gave us a valid connecting header
  + * - we haven't reached MAX_OUTBOUND_PEERS_TO_PROTECT_FROM_DISCONNECT yet
  + * - it has a better chain than we have
  + *
  + * CHAIN_SYNC_TIMEOUT: if a peer's best known block has less work than our tip,
  * set a timeout CHAIN_SYNC_TIMEOUT seconds in the future:
  * - If at timeout their best known block now has more work than our tip
  * when the timeout was set, then either reset the timeout or clear it
  @@ -356,6 +363,9 @@ struct CNodeState {
  * and set a shorter timeout, HEADERS_RESPONSE_TIME seconds in future.
  * If their best known block is still behind when that new timeout is
  * reached, disconnect.
  + *
  + * EXTRA_PEER_CHECK_INTERVAL: after each interval, if we have too many outbound peers,
  + * drop the outbound one that least recently announced us a new block.
  */
  struct ChainSyncTimeoutState {
  //! A timeout used for checking whether our peer has sufficiently synced
  