app: only destroy clients in Debug build
We only clean up clients in Debug mode so we can check for memory leaks
without failing for this. We don't care about it in any other mode since
we are exiting anyways and we want to do it fast. If we destroy, our
readthread could panic so we don't do it unless we have to.
I first attempted to use a selfpipe poll to get the clients to exit
cleanly, however the tls library does not work nicely with poll - we end
up not reading until the timeout is done. So instead, we do it this way
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>