Change how the multisystem framework determines if an algorithm is finished
Description
This merge request is one step towards having more flexible algorithms. In particular, one should be able to execute an algorithm until it is fully finished from any place in the code, even outside the top-level algortihm loop. To be able to do this, algorithms should know when they are finished. For propagation algorithms, this means the propagator needs to store the final propagation time and provide a method to check if that time has been reached.
Also removed the time barrier, as these changes make it obsolete, plus some cleanup.
Edited by Micael Oliveira