machine: refuse to accept empty machine ID
Merge pull request #697 from jonboulle/machineid

machine: refuse to accept empty machine ID
machine: use UnitManager interface instead of SystemdUnitManager
Merge pull request #701 from jonboulle/unitmgr

machine: use UnitManager interface instead of SystemdUnitManager
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 UnitStateGenerator unfortunately needs to
maintain a synchronized map to track the hashes of the units to which it
is subscribed. (Ideally this would have remained in the Agent, but since
the Agent no longer has responsibility for publishing UnitStates, the
Hash needs to propagate to the UnitStatePublisher somehow.)
move unit hashes into systemd manager