Move uncommitted units back to unplaced service list on machine destroy.

* Currently when you destroy an uncommitted container or machine, it appears 
  that the ucommitted unit placed on it is destroyed as well, but the unit
  remains in the change list.
* When a machine is destroyed, uncommitted units are removed from the machine's
  unit list and are updated to show they aren't assigned.
* New unplaced service tokens are created for them.
* If the machine is a container, the parent machine also has the units removed
  from its list, and its token is updated to not show the uncommitted unit.
* Uncommitted units remain, to be placed on new containers or destroyed.
If you take a look at the `_lazy` methods in the ecs you'll see that most of them modify a model directly via the db access. I'm just trying to avoid dev's needing to know that they need to take additional steps beyond just requesting the removal, the front should really just have to say 'do this' to the env then the rest of the stack should take care of the rest.