machine/resource: add basic resource reservation information

This exposes basic resource reservation information in MachineState. The
current approach for calculating free resources is extremely simple:
assume a fixed block of resources (HostResources) is reserved for usage
outside of fleet units (e.g. by system processes and fleet itself), and
subtract the aggregate resources that have been reserved explicitly
using fleet directives.
Merge pull request #622 from jonboulle/resources

Basic resource reservations
engine: add partitioning based on unit count

This reworks the partitioning framework, simplifying it dramatically in
light of the new engine reconciler model. It also implements functional
partitioning of the cluster based on the recently-added LoadedUnits
count in MachineState.