Break lock order loop by sending TAT in an event
requested to merge 2156-threadsanitizer-lock-order-inversion-potential-deadlock-in-pthread_mutex_lock-2-v9_16 into v9_16
The dotat() function has been changed to send the TAT query asynchronously, so there's no lock order loop because we initialize the data first and then we schedule the TAT send to happen asynchronously.
This breaks following lock-order loops:
zone->lock (dns_zone_setviewcommit) while holding view->lock (dns_view_setviewcommit)
keytable->lock (dns_keytable_find) while holding zone->lock (zone_asyncload)
view->lock (dns_view_findzonecut) while holding keytable->lock (dns_keytable_forall)
(cherry picked from commit 3c4b68af)
Closes #2156 (closed)