Fix improper closed connection handling in tcpdns.
If dnslisten_readcb gets a read callback it needs to verify that the outer socket wasn't closed in the meantime, and issue a CANCELED callback if it was.
Closes #2227 (closed)
Edited by Ondřej Surý