A lot of work on GUI

I have fixed some stuff and added some more new stuff. All in all the GUI code is quickly closing the feature gap with command line.
onDownloadsComplete gets called only once, for all files, regardless of completion status, so we'll always set downloader to null eventually. Still, this can be made better