ADR variant 3 (human-decided): house-level ДКП↔listing join is physically
impossible (deals carry only a street centroid). Instead of null-silence at
linkage=0, expose an honest enum so the frontend can tell 'no house linkage'
(street_only) from 'no data' (no_data) from 'linked' (house_linked).
- SalesVsListingsResponse: new required field data_quality.
- _empty() → 'no_data'; main return → 'house_linked' if deals_with_listings>0
else 'street_only' (main return guarded by 'if not rows' → total_deals>0).
Does not touch SQL linkage / cadastre / geo ingest (out of scope per ADR).
Refs #721