Move child process management to its own module, and clean up behavior.

  - DRYs out respawn delay (Fixes #25)
  - Doesn't replace processes that die before they even start listening for connections
  - Shuts down parent process if workers can't even listen for connections
Remove another missed $this from EndpointController