Split redirector from the main process

Since the proxy runs multiple threads, fork()ing and exec()ing a new child process can lead to deadlock.

This patch set splits the redirector code into a new process that is separate from the main io reactor