Machine view: validate series when placing units.

Define a "prepare" section on the ecs record.command:
this way it is possible to mutate the command args
right before its "runtime".

The above is used by lazyAddMachine: the new machine series
can be decided at the last minute, based on the series of
the units assigned to the machine.

Add the ability to validate the unit's placement based on the
series.

Fixed a bug preventing units to be deployed directly to
bare metal (unknown unit .../root-container).

Add some missing tests.

QA can be done in both devel and real envs.
With `/:flags:/mv/`, use the machine view.
Add machines/containers and try to co-locate
units with different series: you should see an
error notification, and the unit should refuse
to be placed.
Now deploy a precise unit to a new machine: a precise
machine should be created when changes are committed.
After that, trying to co-locate e.g. a trusty unit
in the existing precise machine should produce an
error notification.
Make placeUnit return an error, rather than raise an exception.
Merge pull request #462 from frankban/machine-series

Machine view: validate series when placing units.

Define a "prepare" section on the ecs record.command:
this way it is possible to mutate the command args
right before its "runtime".

The above is used by lazyAddMachine: the new machine series
can be decided at the last minute, based on the series of
the units assigned to the machine.

Add the ability to validate the unit's placement based on the
series.

Fixed a bug preventing units to be deployed directly to
bare metal (unknown unit .../root-container).

Add some missing tests.

QA can be done in both devel and real envs.
With `/:flags:/mv/`, use the machine view.
Add machines/containers and try to co-locate
units with different series: you should see an
error notification, and the unit should refuse
to be placed.
Now deploy a precise unit to a new machine: a precise
machine should be created when changes are committed.
After that, trying to co-locate e.g. a trusty unit
in the existing precise machine should produce an
error notification.