Sagas and session types

Saga compensation

Saga runs forward Effect steps via run_blocking. On failure it invokes compensation factories in reverse order.

Linear session types

[SessionSend

](../../id_effect_fsm/src/session.rs) and ``SessionRecv<P> are phantom markers encoding alternating send/receive phases. The included ping/pong protocol demonstrates type-directed hand-off without runtime protocol state machines.