Port all layout management to Hyprland v0.55 Lua API:
- Per-workspace layout toggle/cycle via hl.workspace_rule + hl.get_active_window()
- Layout-aware move/nav/resize as pure Lua functions
- Group smart-join via hl.get_active_window().grouped
- mfact exact handlers in all custom scroll/swap layouts
- No io.popen, no exec_cmd, no IPC deadlock risk
New scroll layouts for vertical monitors:
- top-master-scroll: master top, horizontal slave row below
- center-master-scroll-v: master center, slave rows above and below
New swap-on-focus layouts (focusing a slave promotes it to master):
- master-swap: master left, slaves right
- slave-master-swap: master right, slaves left
- top-master-swap: master top, slaves bottom
Shared place_scroll_row helper (horizontal mirror of place_scroll_col).
Guard recalc dispatch by layout name to avoid errors from built-in layouts.