fleetctl: log state change regardless of missing MachineID
fleetctl: update 'unload' output
Merge pull request #879 from bcwaldon/fleetctl-output

Fix fleetctl unload output
version: bump to v0.8.0+git
scripts: add bump-release script
Merge pull request #881 from jonboulle/release_script

scripts: add bump-release script
agent: change unit state publishing model

This establishes N goroutines (I suggest 5, but it could be 1 to keep
closer to the existing behaviour) which are solely responsible for
publishing to the Registry. These goroutines are select()ing on a
queue channel, where each item (string) indicates that they should
publish a UnitState corresponding to that name.

They retrieve this UnitState from a name->state mapping which only ever
contains the _latest_ UnitState for a particular name.

- The former publishAll() will now simply trigger a publishing of every
  UnitState in the cache and update every UnitState in the mapping
- Any updates from the UnitStateGenerator will result in a trigger event
  and update the latest UnitState in the mapping
agent: fix up mutexes (mutices?)
agent: add simple tests to unit state publisher
pkg: add Clock interface, and fakeClock for testing
pkg: update reconciler to use Clock interface
pkg: fix race in fakeClock and expose Tick

Also fixes the PeriodicReconciler's initial reconcile
agent: switch UnitStatePublisher to Clock interface
agent: abstract out publisher function

This changes the agent UnitStatePublisher to accept a publish function
instead of always depending on the registry. In combination with the new
pkg.Clock interface, this makes it easier to test the time-dependent
behaviour of the UnitStatePublisher.

pkg.FakeClock is now exported to facilitate testing.
agent: test after stopping UnitStatePublisher too
pkg: fix typo in clock docstring
asdf
agent: add unitstatepublisher tests with delays
agent: expand test coverage of UnitStatePublisher
asdf