Class IterativeTimeoutJob

This is the timeout for a single lookup, not for the whole search.
It is called every time, it is not cancelled after the search succeeds
or the peer replies with a DSRM. We rely on ISJ.failed(peer) to
decide whether or not it actually timed out.