agent: add global unit support to reconciler
agent: remove unnecessary TargetMachineID
engine: do not consider global units for scheduling
fleetctl: update to deal with global units

All fleetctl operations on global units are non-blocking. Updated
command descriptions to reflect this.

suToGlobal is shared across commands and so now moved to fleetctl.go

setTargetStateOfUnits should only care about DesiredState, not
CurrentState, of units it is attempting to modify.

Also standardises behaviour and error message reporting across commands
functional: various updates

Update to accommodate multiple UnitStates
Add a simple functional test for global units
functional: remove etcd check
Merge pull request #786 from jonboulle/global

add global unit support to engine, agent and fleetctl