fix(site-finder): align VelocityBlock TS types with backend response shape
Per #147 bot review — cross-stack contract mismatch:
Backend velocity.py (PR #146 merged) returns:
obj_id, name, dev_name, obj_class, district_name, distance_m, total_sqm_period
Frontend types had:
obj_id, name, class, distance_m, total_sqm
Result: c.class undefined → never showed class chip; c.total_sqm undefined →
Math.round(NaN) = NaN, 'не число' в table column для всех 5 строк.
## Fix
- VelocityCompetitor.class → obj_class
- VelocityCompetitor.total_sqm → total_sqm_period
- Added optional dev_name, district_name fields
- Updated VelocityBlock.tsx — все 3 references (guard, chip render, table cell)
Refs: #34, #147