The #[ignore]'d full_pstn_e2e_through_media_thread_register_trunk test
was in crates/rutster-trunk/tests/sim_integ.rs, but rutster-trunk can't
depend on the rutster binary crate (circular dep: rutster already
depends on rutster-trunk). The test needs MediaThread + spawn_tap_engine
which live in the binary crate. Moved to
crates/rutster/tests/trunk_sim_e2e.rs where it can access those types
when implemented. The active pstn_sim_synthetic_caller_drives_trunk_reflex_loop
test stays in rutster-trunk (covers the FOB reflex loop + trunk-leg tick
directly). Also pinned Cargo.lock deps to 1.85-compatible versions
(icu/time/rcgen/dimpl downgrades).
Signed-off-by: Aaron D. Lee <himself@adlee.work>
T7: proves slice-4's Reflex<TapAudioPipe> + LocalVadReflex decorates the
trunk leg's TapAudioPipe identically; barge-in fires on PSTN caller speech
through the same state machine as WebRTC caller speech.
T8: MockRealtimeBrain + BrainShim drives a synthetic PSTN caller through the
FOB reflex loop end-to-end: loud PCM -> local VAD trips -> barge kills ->
brain reply -> un-mute -> idle timeout (caller hangup) closes the session.
Dev-dependencies added to rutster-trunk/Cargo.toml so the integration tests
reach MockRealtimeBrain, futures-util, and tokio-tungstenite without pulling
FOB source into the trunk crate.
Signed-off-by: Aaron D. Lee <himself@adlee.work>