Much much much simpler spent-task clean-up algorithm.

This has been a long time coming. We can now (since cylc-3!) use
information in the suite graph to determine how long each task has to
remain in the task pool after succeeding.
Tidied and commented the new cleanup code.
Merge branch 'master' into new-task-cleanup-algorithm
Merge pull request #497 from hjoliver/new-task-cleanup-algorithm

Much much much simpler spent-task clean-up algorithm.