Change return code of ncsvc to be reason code

This makes it easier for the wrapper app to see what happened.
Change debug messages to display which preload they are from.
Fix close fd_listener to always free and remove from the hash table

Before it was only doing so if a close callback was defined.
Add dup2
Change tncc to allow multiple connections

This is necessary because a second call with setcookie is required. Change
the message passing interface to be a socket on stdin. Each new write
emulates a new connection.
Rework wrapper

- Keep tncc running so that our connection will stay alive
- Operate in a loop for easier reconnects.