AssignClean/Empty policies know about container constraints
Make new default assignment policy AssignCleanEmpty
go fmt
Merge trunk
Merge trunk
Ensure AssignClan does not pick any state management servers
Tweak container constraint handling
Add extra check for machine becoming dirty part way through assigning a unit
go fmt
Cleanup some container logic
go fmt
No need to pass machineID to internalStartInstance; it's in the MachineConfig.
Merge trunk.
Merge trunk.
Merge trunk, resolve conflicts.
Merge trunk
typo
Compile error
[r=jtv] Remove unneeded internalStartInstance parameter.

This matters because it tightens up the signature of a function that is doing
the advance reconnaissance for an ongoing refactoring in the StartInstance()
and Bootstrap() methods.
[r=wallyworld] New assignment policy is AssignCleanEmpty

Add container support to AssignClean(Empty) policies and make
the default policy AssignCleanEmpty. This allows manual deployment
of charms into existing clean and empty containers/instances, with
the fallback that a new container/instance is created if none are
available. The system behaves the same as previously if a simple
bootstrap and deploy is performed, but if add-machine is used to
create some containers/instances, then those are no longer ignored.

https://codereview.appspot.com/11019044/