message: backend: protect mission progress with mutex
  If two subsequent mission progress are published at (almost) the same
  time on different threads (from the thread pool) we experienced
  undefined behaviour. This lock as proven to protect us from that.
diff: @@ -161,6 +161,7 @@ public:
  rpc_mission_progress_response.set_allocated_mission_progress(
  rpc_mission_progress.release());
  + std::lock_guard<std::mutex> lock(_write_mutex);
  if (!*is_finished && !writer->Write(rpc_mission_progress_response)) {
  _mission.subscribe_progress(nullptr);
  *is_finished = true;
  @@ -315,6 +316,7 @@ private:
  }
  Mission &_mission;
  + std::mutex _write_mutex{};
  };
  } // namespace backend
  