feat(dqn-v2): C.6 Task 17 — grad_balancer CPU monitor
Adds CPU-side read-only GradBalancerMonitor for the existing
`grad_balance_isv_update` GPU kernel. Monitor reads ISV slots 31-35
(GRAD_NORM_TARGET_{DIR,MAG,ORD,URG}_INDEX + GRAD_SCALE_LIMIT_INDEX);
returns mean-of-4-targets as the representative scalar; exposes all 5
slots + mean + fire-rate via diagnose().
Creates the `trainers/dqn/monitors/` module directory. Subsequent tasks
add kernels + monitors for atoms, gamma, kelly_cap, tau, epsilon.
Tests: 3 unit tests pass (read returns mean, diagnose exposes 7 fields,
observe tracks fire-rate with 1e-6 epsilon).
No behavioural change — kernel unchanged, monitor is pure observer.
Plan 1 Task 17. Spec §4.C.6 (2026-04-24 revision).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>