agent: further work towards purging "Job" terminology

- Update agent.loadJob/startJob etc
- Switch taskChain to job.Unit
- Update task reasons
- Update tests
agent: further job-removal work

Simplify currentAgentState dramatically; all it really needs is a
mapping from unit names to their states, so switch to that.

Rename and modify agent.jobs() --> agent.units() accordingly.
agent: move AgentState entirely from Jobs to Units

As the title implies - AgentState (used by the agent reconciler for
desiredAgentState and also by the engine for clusterState) now uses
job.Unit instead of job.Job.

To facilitate this in the short term, Unit gains some of Job's methods
and simply wraps a Job to provide them. This will disappear as Job is
removed.
Merge pull request #830 from jonboulle/clean

jobs --> units, redux