engine: check AbleToRun for seemingly healthy jobs
agent: don't worry about ability to run jobs
Merge pull request #754 from bcwaldon/agent-no-unschedule

Agent no longer unschedules work
unit states: further support for multiple unit states

- add UnitName field to UnitState
- overlay legacy unit states when retrieving from registry
- update fleetctl to retrieve just States from registry
fleetctl: split out new list_unit_schedule command
fleetctl: remove hash, add sub to default list_units fields
job/registry: split out new Job/Unit structures

- add new ScheduledUnit struct to represent the state of a Job's
  scheduling according to fleet (corresponds directly to `fleetctl
  list-unit-schedule`)
- add new JobUnit to encapsulate a unit file (corresponds to `fleetctl
  list-unit-files`)
- add associated Registry methods: JobUnits() and ScheduledUnits()
fleetctl: update commands to use new registry calls
fleetctl/registry: rename functions
  - fleetctl list-unit-schedule ==> fleetctl show-schedule
  - registryScheduledUnits() ==> registry.Schedule()
docs: update fleetctl doc to reflect new commands
registry: add more test coverage, sort UnitStates
functional: update to work with new state models
Merge pull request #756 from jonboulle/lu

split out fleetctl into jobs/units/schedules
*: purge offer/bid code
Merge pull request #761 from bcwaldon/purge-offering-code

*: purge offer/bid code
client/http: add new Unit methods

This builds on #756 and introduces parity in the HTTP client's
methods with those introduced to the registry client.

The current implementation is very dumb in that it simply wraps Jobs()
for all three methods.

This also exposed a small bug in the client in that the target state was
not being set correctly.
Merge pull request #759 from jonboulle/jobswork

client/http: add new Unit methods
api: use newUnit helper in tests
registry: drop hash-comparison safety

Leave comparison up to the calling code for now.
api: drop unit hash comparison in DELETE