Wiring into egui_dock
Stub. Adapt from
examples/citizen_dock/.
Implement TabViewer, route on_tab_button into
dispatcher.activate(), drain messages once after DockArea::show().
The key insight: the dispatcher doesn't know about dock at all.
That boundary is user code, by design — egui-citizen has no dependency
on egui_dock.