Enhance RadioUtil playlist handling and deduplication
- Added checks to ensure playlists are initialized and not empty.
- Improved deduplication logic to prevent modifying the original playlist during iteration.
- Added logging for duplicate removal and playlist population.
Add cover art handling in rip_background.py
- Implemented functionality to attach album art if provided in metadata.
- Added error handling for cover art download failures.
Introduce unique filename handling in rip_background.py
- Added `ensure_unique_filename_in_dir` function to prevent overwriting files with the same name.
Refactor SRUtil for improved error handling and metadata fetching
- Introduced `MetadataFetchError` for better error management during metadata retrieval.
- Implemented `_safe_api_call` for resilient API calls with retry logic.
- Enhanced `get_artists_by_name` to optionally group results by artist name.
- Updated various methods to utilize the new error handling and retry mechanisms.