observe/describe: lazy-import av and aruco to silence macOS ObjC dup-class warning
`import av` and `from observe.aruco import ...` at module scope dragged
PyAV and cv2 into every caller that only needed `CATEGORIES` (e.g.
`observe/screen.py`, `apps/settings/routes.py`), producing the macOS
`objc[PID]: Class AVF* is implemented in both ...` duplicate-class
warning on every `sol` CLI invocation that doesn't decode video.
Move both imports into `VideoProcessor.process()` — the only call site
for `av.*` and the aruco helpers. Add a rationale comment so a future
refactor doesn't hoist them back.
Regression test asserts that importing `CATEGORIES` from `observe.describe`
does not pull `av` or `cv2` into `sys.modules`.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>