Move hosts_ attribute from ExecImpl to ActivityImpl to better handle detached cases
As discussed with @mquinson a while ago, we currently lack a way to keep track of detached activities (1) when nodes are turned off and (2) when the simulation terminates abruptly.
One solution is to add those detached activities (for now only Comms, but I think it will also make sense for IOs) to the maestro, as we already do for Exec activities in some corner cases.
Software-wise, the shortest way to do that is to move the get_hosts() member upper to ActivityImpl and let different chidlren handle the hosts.
Then, when a Comm is detached, we add it to the maestro, and if the host is turned off, those activities are terminated transparently.
Edited by Fabien Chaix