Zero downtime restart

**For discussion, not for merging just yet**

This is an implementation of a mechanism that I've been experimenting with.  It starts a child to take over serving requests while the main process re-exec's itself.  The parent then kills the child once it's started again.  This means that the pid won't change on reload, which will keep upstart happy.

I'd like any comments on this.  Specifically, I'm not sure how to go about writing unit tests for most of this.