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.
`_logger.Trace("[{0}] {1}", trackedDownload.DownloadItem.Title, message);` puts the title at the front and doesn't concat strings.

Is trace the right level? means after the first run we need to go to trace to see what its doing, which brings in a lot of extra logging I generally don't want to see.

Any risk in setting the error message again? If not the whole if can be dropped.