A traditional Kademlia search that continues to search
when the initial lookup fails, by iteratively searching the
closer-to-the-key peers returned by the query in a DSRM.
Unlike traditional Kad, it doesn't stop when there are no
closer keys, it keeps going until the timeout or max number
of searches is reached.
Differences from FloodOnlySearchJob:
Chases peers in DSRM's immediately.
FOSJ searches the two closest in parallel and then stops.
There is no per-search timeout, only a total timeout.
Here, we search one at a time, and must have a separate per-search timeout.
Advantages: Much more robust than FOSJ, especially in a large network
where not all floodfills are known. Longer total timeout.
Halves search traffic for successful searches, as this doesn't do
two sesarches in parallel like FOSJ does.
Public only for JobQueue, not a public API, not for external use.