Complete rewrite of deployment plan calculation.

Simplified calculation of deployment plans.

- Plans now have less steps, and each step has less actions, in general.
- Group.dependencyGraph() now includes independent (e.g. disconnected) vertices.
- Removes the `KillAllOldTasksOf` deployment action, as it is no longer used.
- Removes now-unused Group.dependencyList() method.
- Updated tests.
- Fixes #807.
I'm fine with `SortedMap`, just wanted to know the exact reason. Just thinking about the necessity of having the number of transitive dependencies in the result. If I'm not missing anything it should even be sufficient to just return a `Seq[Set[AppDefinition]]` that is sorted. But of course it works both ways.