Add timeout option

Adds a timeout option for use if the failed download can't be detected.
Default is to never use a timeout, unless it is passed in as option.