change ESSearchTask to use QueryThenFetch using QueryShardRequests

cant the SearchRequest be reused? (avoiding new instance creation inside loop)