feat: Phase 3 Week 3 — typed messages + store-and-forward outbox
- Create mesh/message_types.rs: typed message envelope system
- MeshMessageType enum: Text, Alert, Invoice, PsbtHash, Coordinate,
PrekeyBundle, SessionInit, BlockHeader, TxRelay, LightningRelay
- TypedEnvelope: CBOR wire format with 0x02 prefix, optional Ed25519 sig
- Payload types: AlertPayload (with AlertType enum), InvoicePayload
(sats as u64), Coordinate (integer microdegrees, no float),
PsbtHashPayload, BlockHeaderPayload, TxRelayPayload, LightningRelayPayload
- Signed envelope creation + verification for alerts/block headers
- 8 unit tests
- Create mesh/outbox.rs: store-and-forward message queue
- PendingMessage with TTL (24h default), retry count, relay hops (max 3)
- MeshOutbox: persistent VecDeque, max 200 messages, expiry, relay support
- Disk persistence to mesh-outbox.json
- 6 unit tests: enqueue, deliver, expire, persistence, max size, relay hops
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>