Fix #13 - switch to Crossterm backend
Optimise the draw code:
- Event driven redraws for FinderView
- Reduced frame rate and caching for PlayerView
Bug fixes:
- Create a new sink when stopping an audio stream to ensure it is emptied. Clone the stream with Arc between instances. Creating a new sink is cheap and ensures the sink is cleared when we expect it to be. This fixes a race condition (non-deterministic) when toggling random / shuffle modes