This function does the following:
reads existing plan from the library of plans in the hastable taskTemplates
It sets the taskId for each task of the plan
Saves the plan and each of its tasks into Hashtables
Used to walk through the list
Returns the current element's data
Sets the pointer to the next element (can be null)
If the no more elements -- resets the current pointer
The general idea is to parse just enough of the input to
decide what structure is being described, then hand off the
input stream to a function designed to build that kind of
structure.
The Schedular takes a TaskQuCell off the TaskQ, merges the tasks in the TaskQuCell
with Tasks, then checks to see if any of the tasks can be run immediately (because
they have no input provisions), distributes input provisions, and checks to see
if a task can be run as the input provisions are filled in.