Currently cleanup happens when PRDownloader.cancel() is called. This is not intuitive, for example when onError callback is called, one doesn't think of calling cancel() of basically canceled download. We should add the method that will be clean to understand and it will do only the cleanup.