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.
Do we need to iterate here? Given that you're doing this check on every placement, all we really need is the first unit, since that set the series, right?

```
var existingUnit = db.units.filterByMachine(machine.id).item(0)
if (utils.getSeries(existingUnit) !== unitSeries) {
  error = 'machine ' + machine.id + ' already includes units with a ' +
    'different series: ' + existingUnitSeries;
}
```

It looks simpler to me--does it fail to cover a case I'm not seeing?