Reset uncommitted units to unplaced when their machine is destroyed.
Update parent machine if destroying a container.
Move updates to ecs and machineChanged

* ECS is responsible for updating machine states
* unitToken list is updated when units are removed from a machine
Merge pull request #505 from jaycee/ecs-remove-machine-remove-everything

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.