feat(assignment): add multiple trips assignment and advanced driver filtering
- Add findBestDriverForMultipleTrips() for ranking drivers across multiple selected trips
- Add createTripDriverAssignmentsForMultipleTrips() for batch trip assignments
- Add enrichScoresWithWorkingHours() to include working hours in driver ranking responses
- Add unassignDriverOverlappingAssignments() to handle automatic conflict resolution
- Refactor createTripDriverAssignmentForTrip() to control unassignment logic in batch operations
- Add emptyKm recalculation after assignment truncation or splitting
- Add getDriversByMultipleFilters() to combine multiple filter criteria (ALL, WITH_CIRCUIT, WITHOUT_CIRCUIT, WITH_APPLICATION)
- Modify getDriversWithCircuit() to filter drivers assigned exactly within specified period
- Add fetchWorkingHoursForDrivers() for batch working hours retrieval from HR service
- Integrate working hours and vehicle info into driver search response