feat: fix planning personalization regressions and improve UX
- Fix unsaved changes alert appearing after successful save by splitting onClose into guarded (Annuler) and direct (post-save) callbacks
- Prevent double API call when clicking "Enregistrer et continuer" on the spurious alert dialog
- Add loading state and disable on Ajouter button to prevent double-click
- Hide delete action in trip points table for personalized mode
- Add Dupliquer option in context menu for assigned trip slots
- Show recommended driver candidates in left panel for personalization and duplication (same as reassignment)
- Update circuit endpoint path to match backend change