feat: interleave establishment drop-offs in departure trip stop order
Assign continuous num values to passengers and establishments based on visit sequence instead of all pickups followed by all schools.
For multi-establishment departure trips, drop off a school as soon as all its passengers are on board when the detour is acceptable (max 4 km or 35% of the direct leg to the next pickup). Remaining schools are appended at the end in nearest-first order.
- Add build_interleaved_departure_order in time_calculator
- Use interleaved order in _calculate_departure_times before pickup times
- Delegate departure route recalculation to TripRecalculator so segment metrics follow num order
- Compute establishment dropoff_time along the interleaved sequence