sbws AsyncResults have no timeout

After sbws queues an AsyncResult, it will wait forever for the result to be ready: https://github.com/torproject/sbws/blob/ee64d76df54ceb3a3c9e1e2a797fd70d68bb0035/sbws/core/scanner.py#L359-L364

If at least one result hangs, then sbws will hang, because AsyncResult.ready() does not have a timeout.

Instead, sbws should call AsyncResult.wait([timeout]) on each result, after calling pool.apply_async() on a large number of results.

See https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.AsyncResult.wait