dnsdist: Replace shared by unique ptrs, reduce structs size
This commit replaces the DNSCrypt and QTaq shared pointers by unique ones,
since these are not actually shared. This should improve performance a
bit since we no longer need to clear a cache line for the reference
counter. It also reduces the size of the IDState and DNSQuestion structures
by a few bytes.
It also removes a few fields in the DOHUnit structure that are redundant
with ones in the embedded IDState structure.
The rest of the commit re-order fields in various structures to prevent
wasted space due to padding, reducing the memory footprint of these structs.