Add four viewer widgets for the remaining Silo tree node types:
- SiloApprovalsViewer: ECO approval status cards with colored status
icons, state badge, and Open in Silo Web UI button
- SiloDependencyTable: QTableView with resolution status (checks open
documents for matching part_uuid)
- SiloJobViewer: YAML source editor with Edit/Lock toggle, monospace
font, dirty tracking, and unsaved-changes guard
- SiloMacroEditor: Python source editor with Run Now (exec in FreeCAD
context), Save button, and dirty tracking
Also extends the viewer factory with prefix-based routing for
silo/jobs/*.yaml and silo/macros/*.py entries.
Closes#41