Draft: Instead of maintaining own set of resolver tasks use caller's task
Previously, the resolver has maintained many tasks that were randomly used for resolution process. After the last refactoring, this was reduced to per-thread task. Since the caller always needs to pass the task for calling the callback, the resolver already have access to the task object that's evenly distributed among the threads (via ns_clientmgr), so change the logic to stop using the internal threads, and use the task that has been passed when creating new fetch context.