Manual Search is now sorted by the internal priority

I also moved the internal sorting logic from the DownloadApprovedReports to the DownloadDecisionMaker which make sure the sorting logic is only implemented in one place.

I implemented the priority in the UI by adding a ReleaseWeight, which is nothing more than an index. This avoids us having to preserve the original collection order on the UI.

Also added QualityWeight to allow sorting by quality. This Weight is filled using the Quality Profile, so it honors the profile.
It actually was Trace for most messages, intentionally to avoid logging the same over and over again.

The idea of this piece of code is to log at Debug the first time this message comes along and then repeat at Trace level.
That way a complete Debug log will show the reason only once, and a partial Trace log will show the reason each minute.

Generally as a design rule I try to keep Trace logging as something that is repetitive while info/Debug is event based or incidental.