muxr v2.1.0

Config-drive resolver: the layout is now data, not compiled-in.

- feat: [layout] config struct (campaigns_dir, campaign_file, log_file,
  archive_dir, switchboard_slug); each default reproduces the built-in
  2-level model, so [layout] is a non-breaking override.
- refactor: layout-dependent primitives + compose_launch_command read
  config.layout end-to-end; retired the delegating free-fns and the
  ARCHIVE_DIR / SWITCHBOARD constants. No behavior change at default layout.