Fix issue with downloadTaskDidFinishDownloading not being called

The issue here is if destination is not provided for download task, then there is no way to access the download location later. This is especially critical for background downloads. 

Besides that I guess delegate always exists, therefore `downloadTaskDidFinishDownloading` will never be called.

Related to issue #2050.