Implemented a download timeout (fixes issue #50)