Redesigned and completed dataflow engine.

Dataflow engine was redesigned to run serially in order to elliminate
race conditions.

Dataflow engine is now complete and supports both output snapshot messages
and queued output messages.