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.
I'm not entirely sure we want to throw here because we want it to be recoverable. We would want the user to be notified then take the appropriate steps to fix it.