Fixing error handling such that processing is aborted if there is a single failure.

* Required switching sentinel values to integers -- since the objects
  are pickled when being pushed onto the queue, the value popped off
  of the queue will *not* be the same object.  Sad.
* When any single service fails, abort processing for all to avoid
  marking tasks handled by failed services as 'done'.