Fix race condition in the tests.

Because of the way we fire off a thread to handle requests,
there was a race condition where the local scope change and
the same object was called twice (instead of run() called once
and bind() called once). Tests now pass reliably.
Don't actually close sockets with revive mode.
Adding --wait flag for waiting for child processes.

This also requires us to interpose on the wait() and waitpid()
library calls. Basically, we won't exit until all child processes
have finished. This can help with some processes that need to
ensure resources are cleaned up by calling out to child processes.
Adding basic deb and rpm packages.