Resolve "ADB quota might not be decremented"
It is currently possible that dns_adb_endudpfetch() is not called in fctx_cancelquery() for a UDP query, which results in quotas not being adjusted back.
Always call dns_adb_endudpfetch() for UDP queries
Also, in the cleanup code of fctx_query() function there is a code path where 'query' is linked to 'fctx' and it is being destroyed.
Make sure that 'query' is unlinked before destroying it.
Closes #3598 (closed)