feat(driver-ranking): chaining relations, multi-day labels, and scoped plan context
Add driver–existing assignment chaining detail for UI (perNewTripContext, assignmentRelations, proposalReason) and fix multi-day trip labels.
Planning / enrichment:
- Classify new vs existing trips (BEFORE/AFTER/OVERLAP_SAME_ESTAB/OVERLAP_DIFF_ESTAB)
- Build perNewTripContext (AVAILABLE / CHAINABLE) with gapMinutes and summaries
- Build assignmentRelations flat list and existingTripsSummary grouped view
- _display_days_label_for_trip: multi-day abbrev from tripTitled or days[] (_chaining_days_for_trip stays single slot day for matching)
- Filter relevant relations (overlaps always; BEFORE/AFTER within 90 min)
Ranking:
- Preserve tripTitled in _dict_to_trip_info (was dropped from payload)
- _enrich_multi_driver_plans: scope perNewTripContext/relations to each driver's tripAssignments in multi-driver plans
- Serialize new fields on DriverScore response
Tests: multi-day labels, Friday slot vs LU-MA-JE chaining regression, multi-driver plan scoping