start method
Starts a new sequence at its first step. A call with an empty steps
list is a no-op (nothing to show).
Implementation
void start(List<TutorialStep> steps) {
if (steps.isEmpty) return;
_steps = steps;
_index = 0;
notifyListeners();
_logShown();
}