Add timeout for network requests (#86)

Just a new feature so that we do not wait forever in requests.get() calls. In an usual network a timeout of even 1s should let everything pass. So I think that 20s are more than enough.

With it we would also kill a download if the next chunk could not be retrieved in such an interval. We would return early and not try to wait for the whole download to be finished.