engine: add basic timer to Reconcile
machine: add count of fleet units to MachineState

This change removes MachineState from UnitState, instead exposing a
reference to MachineID. MachineState gains a new field, LoadedUnits,
representing the count of units loaded into fleet on the machine. This
count is obtained trivially through the SystemdUnitManager. To
facilitate this, the manager is injected into CoreOSMachine.

To support this change, fleetctl will now cache a set of MachineStates
per invocation (since the state is no longer returned with each
UnitState). This means that fleetctl will now show a consistent
MachineState per machine (whereas previously it could potentially be
different for different units).
Merge pull request #616 from jonboulle/units

Expose fleet unit count in MachineState
Merge pull request #641 from jonboulle/enginetime

engine: add basic timer to Reconcile
machine/resource: add basic resource reservation information
engine stuff