Use a simpler data model

Instead of an IntMap of running and/or completed processes, process
information is kept in the graph until observed.  Also, instead of
scanning the graph to locate pending tasks, they are kept in an IntMap
of IO actions.  Also, no TMVars are needed anymore for sequencing.