Slightly simplify some of the download implementation
Basically, move more processing inside the Either DownloadError
so that
context can be disregarded where it isn't relevant.
Also remove the list from downloadShare
so that its caller can arrange for
any desired concurrency, retries, etc.