use an ordereddict for task and job list

When jobs/tasks are not added in order, and possibly reordered,
they should not be ordered by the ID to obtain the order in the plan.
Instead the original order should be preserved.

This bit uses an ordereddict to pass jobs/tasks on.