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 

Yeah, which is why its on [Trello] (https://trello.com/c/59SEF3IF/858-weighting-of-event-handlers), but I agree that they shouldn't know about each other. Nancy does a similar thing with pipelines with the ability to add to the start or the end, not quite the same, but when things rely of somewhat of an order.