Simplify entity equality code and enfore db/metadata split
Use a nuget package to remove boilerplate code that needs careful
update when adding/removing fields. Add tests to enforce that all
fields are allocated to 'UseMetadataFrom' or 'UseDbFieldsFrom' to make
metadata refresh more foolproof.
Fix NRE when tracks are merged because artist wasn't set.
Fix NRE when tracks are merged and the merge target wasn't yet in the database.
On import the album release is adjusted, which triggers an
AlbumEditedEvent which in turn coverts media cover urls to local
urls. The addition of ?lastWrite=xxx broke the calculation of
extenions from the URL. To fix, only set the extension and don't
update the extension if url is changed.
This fixes and implements many items on the ArtistIndex Page and ArtistDetailPage
* Create ArtistStatistics Core Module and tie into API.
* Create Members Class and tie into ArtistModel and Artist API resource.
* Finish Out Album API resources and pass to ArtistDetailPage.
* Finish Out Track and TrackFile API resources and pass to ArtistDetailPage.
* Lots of UI work on Artist Detail Page to get Albums and Track list working.
* Add Cover and Disc Image Types to MediaCover Class
* Remove AddSeries UI Flow, since we have replaced with AddArtist (Cleanup)