feat(signal): ADR-143 RF-SLAM reflector discovery + anchor learning (#847)
- ruvsense/rf_slam.rs (forward-looking, ships v1 fixed-map first):
- RfSlam::fixed_map() — discovery disabled (v1); with_discovery() — v2
- ReflectorObservation (CIR-tap sighting), PersistentReflector (per-axis
Welford position, migration_m_per_day, classify Wall/Furniture/Mobile)
- observe(): nearest-reflector association within assoc_radius or seed new;
coherence-gated; static_anchors() rejects Mobile → ADR-139 ObjectAnchor set
- persistent_count() for topology-change detection
- 6 tests (fixed-map no-op, persistence, low-coherence reject, cluster split,
mobile excluded, static→Wall); workspace 0 errors
Co-Authored-By: claude-flow <ruv@ruv.net>