Replace trackPtr with raw Track* pointers in HashTable, add loadLibrary
to PlayerLocal, remove unused File helpers, and fix broken artwork/artist
SQL bindings.
- Replace `Tag` class with utility helpers for hashing and file type parsing
- Change `Track.artwork` from `std::string` to `TagLib::VariantMap`
- Add `importArtwork`, rename `importFolder` to `scanFolder`
- Add `scanLibrary`, `updateLibrary`, `editMetadata`, and `seek` methods to `Player` hierarchy
- Remove obsolete `Tag.h`/`Tag.cpp` files
Update the Database class to include explicit methods for fetching
various entity types, managing relationships, and querying file paths.
Implement hashing logic in the File module to facilitate tracking by
unique identifiers. Add C++20 support in configuration files.
Change Track members: artwork -> std::string, genre -> TagLib::String, and add year
File::readFileTag now takes a Track& and fills artist/title/album/trackNr/year/genre/format/length
importFolder sets artwork to <folder>/cover.png
Rename Database::addSong to addTrack
Replace Metadata.h with Containers.h, introducing a HashTable
implementation with SIMD acceleration and specialized track tracking.
Cleanup PlayerEngine logic by merging it into the playback flow and
refactoring several internal API signatures.