Adds a timeout option for waiting to retry

Sometimes you might not want to retry the block immediately, in case
something like a network connection is likely to be down. You can now
pass an amount of seconds to `with_retries` in a `timeout` parameter.