Moderation: Handle Kick Reason

We need to differentiate between a "normal" kick and kick enforced by debriefings.

The events from the backend look like this:

{
  "namespace": "moderation",
  "timestamp": "2026-05-08T09:41:18.547882848Z",
  "payload": {
    "message": "kicked",
    "reason": "debriefed"
  }
}

where reason is one of kicked or debriefed.

#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum KickReason {
    Kicked,
    Debriefed,
}
Edited by Sandro Forster