Adds a loop button next to the play/pause control in the preview
toolbar. When enabled, preview playback wraps back to the start of
the timeline instead of pausing on reaching the end. The state is
persisted as a per-project setting and defaults to off.
- Add optional \`loop: boolean\` field to \`TProjectSettings\`
- Add \`LoopToggleButton\` in the preview toolbar, wired through
\`UpdateProjectSettingsCommand\` so toggling is undoable
- In \`PlaybackManager.updateTime\`, when the playhead reaches the
end and the project's \`loop\` setting is on, reset to time zero
and continue scheduling animation frames instead of pausing.
The audio manager picks up the seek-to-zero through the existing
\`onSeek\` listener, so audio restarts in sync with video.