feat: Phase 3 Week 2 — Double Ratchet protocol for forward-secret mesh messaging
- Create mesh/ratchet.rs: full Signal-style Double Ratchet implementation
- DH ratchet with X25519 ephemeral keypairs per step
- Symmetric-key ratchet via HKDF-SHA256 chain derivation
- Per-message ChaCha20-Poly1305 encryption with derived message keys
- Out-of-order delivery via skipped message key cache (max 100)
- Forward secrecy: old keys zeroized on ratchet step
- Wire format: 40B header + nonce + ciphertext + tag
- Tests: full conversation, out-of-order, forward secrecy, wire format,
long conversation (50 messages alternating), message roundtrip
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>