Use a qp-trie for the zone table
This change makes the zone table lock-free for reads. Previously, the zone table used a red-black tree, which is not thread safe, so the hot read path acquired both the per-view mutex and the per-zonetable rwlock. (The double locking was to fix to cleanup races on shutdown.)
There is still plenty of scope to improve the way we handle changes to the zone table.