Log5 fixes, and StatefulClass

* Add DebugOutputSink to match ConsoleLogSink. Base both, and
  FileLogSink, off of a new base class TextLogSink, which handles the
  process of converting a stream of log information into flat text (via
  DefaultLogFormatter).

* Add StatefulClass, which can be used as a base class for process
  classes: that is, classes which encapsulate a job, emitting logs,
  progress information, and presenting a state enumeration.