Split DownloadStatus into two separate classes

DownloadStatus is now used only for finished downloads, whereas
DownloadRequest is used for running/unfinished downloads