restart method
Replace the running tour with tour: finishes the current one silently
(normal completion — no skip diagnostics) and starts the new tour.
When idle, equivalent to start.
Implementation
Future<void> restart(HintTour tour) async {
if (!isIdle) finish();
await start(tour);
}