refactor(machine): Separate HasMetadata from Machine
refactor(machine): Drop return value from Machine.RefreshState
refactor(machine): Separate Machine iface from CoreOSMachine impl
refactor(machine): Make refresh an impl detail of CoreOSMachine
fix(machine): Protect CoreOSMachine with mutex
Merge pull request #470 from bcwaldon/machine-interface

Refactor machine pkg to use interface
refactor(systemd): Rename SystemdManager -> UnitManager
refactor(systemd): Introduce unit.UnitManager interface
Merge pull request #471 from bcwaldon/UnitManager

Add UnitManager interface
refactor(test): Move fleetctl tests to functional/
Merge pull request #472 from bcwaldon/move-fleetctl-tests

Move integration-tests/* to functional/*
fix(agent): log all unit state changes
Merge pull request #474 from jonboulle/state

fix(agent): log all unit state changes
refactor(agent): Move logic from HandleEventJobOffered to MaybeBid
refactor(agent): Move logic from HandleEventJobScheduled to JobScheduled
refactor(agent): Move StopJob locking into Agent
feat(docs): link to unit repo in example deployment
feat(fleetctl): add version check to fleetctl

This adds a basic version check/gate to fleetctl wherein it will print a
scary warning to the user if the version of fleetctl appears to be older
than the version of fleet running in the cluster. The version of fleet
in the cluster is inferred from the latest version found in all
machinestates registered in the registry.
Merge pull request #428 from jonboulle/428

Implement version gate in fleetctl
refactor(agent): Move logic from HandleEventJobUnscheduled to JobUnscheduled