use dns_qp rather than dns_qpmulti in zone table
writes and updates using the dns_qpmulti mechanism require repeated scans of the chunk array when opening and committing (or rolling back) transactions. since the zone table is loaded before the loops are running, isc_qsbr isn't able to keep the chunk table size under control, and consequently the array gets very large, substantially impairing startup performance on a server with a large number of zones.
while this problem is being corrected elsewhere, we can restore the performance by putting back the zone table's rwlock and using a dns_qp structure instead of dns_qpmulti transactions. changes to the zone table are done one at a time, so the transaction/commit/rollback semantics aren't really needed here anyway.
Closes #4006 (closed)
Edited by Evan Hunt