internal/v4, internal/router: use concurrency

This might speed up search results considerably.
So wait never returns an error if the functions passed to Do don't. 
I'd add a comment here, or just check the error as usual: if in the future those functions can fail, we don't want to skip the error checking here.