registry: add UnitHash to published UnitStates

This introduces a new field in UnitStates containing the string
representing the Hash of the associated Unit, to disambiguate between
UnitStates published with the same name but actually representing
different Units.

To facilitate this, the systemdUnitManager maintains a synchronized map
to track the hashes of the units it loads/unloads.
systemd: lock for entire GetUnitStates call
Merge pull request #700 from jonboulle/unithash

registry: add UnitHash to published UnitStates
engine: no purge on loss of etcd

Partial fix for #708
Merge pull request #711 from bcwaldon/708

engine: no purge on loss of etcd
agent: tweak UnitStatePublisher logs
Merge pull request #713 from bcwaldon/tweak-logs

agent: tweak UnitStatePublisher logs
engine: mv dumb-reconciler.go -> dumb_reconciler.go
registry: give Bids a string
offer: ignore partitioned offers
engine: drop unused partitioning code
engine: drop wipReconciler
engine: add clusterState object
engine: use clusterState object
engine: move commands from reconciler to Engine
engine: use task mechanism in reconciliation
agent: update reconcilier logging
squash: dedupe offerJob tasks