An abstract class which manages a circular queue of messages, and
runs its own thread to pop messages off that queue. The method
dispatch, provided by instantiable subclasses, is
invoked on each message as it's popped off.
Process a dequeued message. Return value indicates success or
failure or the dispatch. Failed dispatches will be tried again
before any further queue entries are dispatched.