Dl tracking

This got a bit bigger than I expected, and there is still more I want to do.

Main changes: 
- made `DownloadTrackingService` dumber/simpler
- updated `CompletedDownloadServiceFixture` to test the subject directly rather than through `DownloadTrackingService`
- renamed `DownloadClientId` to `GrabId`
- renamed `TrackedDownloadState` to `TrackedDownloadStage`
- added `History.GrabId`, I'm thinking we should make it an actual column, so dealing with it gets a bit easier, also we would be able to query based on it rather than loading the whole history in memory.

@markus101 @Taloth 

*shiver* Can we filter them without altering the history? Maybe a new history type that is not shown in the UI?

I do think history should be immutable.