more generic way to close the Callable that runs in the network thread, in addition to the interrupt
rework the DownloadTaskFactory to create the task using the Callable
make HttpCallable public as it's the most common case of a Callable to create for a DownloadTask
rename DownloadTask to NetworkTask
make sure the balance is respected between onHttpStarted() and onHttpFinished()
factorize the AsyncHttpCallback to detect failure in long download cancelation