registry: remove LegacyJobPayload compatibility tricks
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.
*: assorted minor issues identified by go vet
log: stderr, not stdout

Fix #841
doc link update
Merge pull request #844 from igm/patch-1

doc ref link update
Merge pull request #843 from bcwaldon/841

log: stderr, not stdout
registry: fix state-related bugs in FakeRegistry
agent: refactor UnitStatePublisher locking + timing

- rename addToCache --> updateCache
- split logic in publishAll into pruneCache and Run
- add test coverage for updateCache & pruneCache
- updateCache checks if state existed previously in cache and if not,
  publishes immediately (i.e. considers it a change)
- Run waits TTL/2 between publishing entire state
- Run only locks the cache to copy it; no longer holds lock while
  publishing to etcd
agent: dump UnitStatePublisher cache on SIGUSR1
Merge pull request #849 from bcwaldon/usp

Refactor UnitStatePublisher
Merge pull request #838 from jonboulle/vet

*: assorted minor issues identified by go vet
Merge pull request #830 from jonboulle/clean

jobs --> units, redux
example-deployment: fix broken link
api: add first pass at validation for units

Introduce ValidateOptions function which defines the valid set of
UnitOptions. This is invoked in the HTTP API during a set operation.

For now, fleetctl also performs a basic check (which will be removed
once fleetctl migrates to the HTTP API).
Merge pull request #659 from jonboulle/valid

formalize valid requirements specifications
log: just call Output

Fix #848
schema: Fix schema id for Unit delete