Add option to mark TCP dispatch as unshared
The current dispatch code could reuse the TCP connection when dns_dispatch_gettcp() would be used first. This is problematic as the dns_resolver doesn't use TCP connection sharing, but dns_request could get the TCP stream that was created outside of the dns_request.
Add new DNS_DISPATCHOPT_UNSHARED option to dns_dispatch_createtcp() that would prevent the TCP stream to be reused. Use that option in the dns_resolver call to dns_dispatch_createtcp() to prevent dns_request from reusing the TCP connections created by dns_resolver.
Additionally, the dns_xfrin unit added TCP connection sharing for incoming transfers. While interleaving *xfr streams on a TCP connection should work this should be a deliberate change and be property of the server that can be controlled. Additionally some level of parallel TCP streams is desirable. Revert to the old behaviour by removing the dns_dispatch_gettcp() calls from dns_xfrin and use the new option to prevent from sharing the transfer streams with dns_request.
Closes #4379 (closed)