Merge pull request #754 from bcwaldon/agent-no-unschedule

Agent no longer unschedules work
agent: simplify desired state construction
agent: move task-related code to new file
agent: serialize tasks through new taskManager