Refactor downloads and download deletion and put the work off the main
thread
Refactor downloads to use separate async task, improve download UI