Initial implementation of worker kill timeouts

* Pool options for timeouts that can kill assumedly hung workers while
  initializing, working, and recovering

* respawn_wait option for Pool, throttles respawn of workers in case
  there's a persistent error condition causing exits

* new timeout event from WorkerProcess

* Tests