message: refactor: replace RecursiveMutex `m_subver_mutex` with Mutex
  In each of the critical sections, only the the guarded variable is
  accessed, without any chance that within one section another one is
  called.  Hence, we can use an ordinary Mutex instead of RecursiveMutex.
diff: @@ -438,7 +438,7 @@ public:
  //! Whether this peer is an inbound onion, i.e. connected via our Tor onion service.
  const bool m_inbound_onion;
  std::atomic<int> nVersion{0};
  - RecursiveMutex m_subver_mutex;
  + Mutex m_subver_mutex;
  /**
  * cleanSubVer is a sanitized string of the user agent byte array we read
  * from the wire. This cleaned string can safely be logged or displayed.
  