Refactor server shutdown to call Close() on conn and sync on srv.started
Refactor server shutdown to call Close() on conn and sync on srv.started

Remove the necessity for the hackish (and unreliable) fake packet.
Fix a couple races and unclutter the start/stop internal state.

skyportsystems/dns,cloudflare/dns,miekg/dns,ErikDubbelboer/dns,Psiphon-Inc/dns,michaelharo/dns,bboreham/dns