address some possible shutdown races in xfrin
there were two failures during observed in testing, both occurring when 'rndc halt' was run rather than 'rndc stop' - the latter dumps zone contents to disk and presumably introduced enough delay to prevent the races:
- a failure when the zone was shut down and called dns_xfrin_detach() before the xfrin had finished connecting; the connect timeout terminated without detaching its handle
- a failure when the tcpdns socket timer fired after the outerhandle had already been cleared.
this commit incidentally addresses a failure observed in mutexatomic due to a variable having been initialized incorrectly.
Closes #2258 (closed)