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.
gofmt adds that actually (or goimports or whatever I have running against it automatically)