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 

My concern with this is that if CDH is disabled (yes, who would, but we have legacy systems out there.), you will show all of these on the UI permanently coz the stage never moves beyond 'Downloading'.

This is why I filtered these out if CDH was disabled. (see https://github.com/Sonarr/Sonarr/pull/154/files#diff-a6ca11d7b11715c4f379d0ea27d791ddL116)

That filtering should be reimplemented, either here or in QueueService.