Added pipe_some helper function
Use ocaml-curl for downloads

Note: this initial version is single-threaded, so each download blocks
the whole process until done.
Run each download in its own thread
Simplified download timeout API
Download monitoring works again
Cancelling downloads works again
Removed fetch.py
Queuing works again
Merge branch 'curl'

Allow downloading is now done in OCaml (though progress reporting still
happens in the Python).