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 

How? DF doesn't know about the downloadID unless some external tells him about it, so it doesn't get into the db, which means GetStatusFromHistory won't work.

With AssociateWithPreviouslyImported torn out, we also can't associate with items without downloadId. (Yes that was another feature designed to aid migration and and fix download items imported outside of CDH).
Something I overlooked in my review, I'm getting depressed. :(