Add permit pool with typestate for slot management
PermitInUse/PermitIdle/PermitPoisoned enforce valid state transitions
at compile time - poisoned permits cannot become idle.
PermitPool manages slot permits with RAII semantics:
- Idle permits return to pool on drop
- Poisoned permits are orphaned, reducing capacity
AnyPermit enum for dynamic state storage.