* DownloadQueue - is now refactoring the Runnable object back to a
Downloader object to do what we want to do with it (shut it down and set
the right status)
* The other changes consist of adding in a new object for wait/notify
locks to make sure that code is run when it should on shutdown, so
downloaders are finished, then status is set, then data is saved back to
the database, then the program exits.