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.
You are right, it covers our case. But then we need to check if we have at least one unit, and I liked the functional approach without conditions more. I agree that looping over all the units looks paranoid, so, if you prefers the more usual approach I can surely change this.