Creates file with .download suffix, denoting an unfinished file

Big changes, haha. The goal is to keep the file with the suffix `.download` while it is not done yet. This way, when the download is aborted by any reason, the file will be recreated on the next attempt. Without this implementation, the unfinished files are kept, since the program doesn't know they are not ready yet.