Issue #2: Sleep Timer, Favorites, and Missing Client Features

Forgejo: http://100.120.38.37:3001/from-admin/riptide/issues/2

Summary

This is a grouped client-quality issue for small-but-real RipTide app features and state bugs found during review. It is not one feature; it should be split or implemented in a careful pass because several items touch input, persistence, and playback state.

Expanded Scope

Sleep Timer

Current state: - Sleep Timer appears in the options menu. - There is no timer state, countdown, UI value, or playback/exit action. - Selecting it does not do useful work.

Expected v1: - Options menu cycles a sleep timer value: off, 15, 30, 45, 60, 90 minutes. - Timer counts down only while RipTide is running. - When elapsed, stop playback and return to hub, or quit RipTide if MjF chooses that behavior before implementation. - Timer state should be visible enough in Options or hub status to avoid a surprise stop.