Refactor to the arbitration system. [#12]

* The Arbiter is split into two classes, Arbiter and Injector.  The
  Injector is responsible for listening on the outward-facing socket and
  putting incoming jobs into redis.

* The injection and arbitration tasks are now done in separate child
  processes, just like the worker ones.  This way the master process never
  does *anything* other than signal handling and child process management.

* Factors the common child-process stuff into a new Child class.  All
  child processes listen on some sort of input source in a non-blocking
  way and have a heartbeat timeout.  Subclasses can customize their IPC
  signal handlers as well as handlers for the input sources.