Further simplify the way host failures are detected
Do as it's done in links and communications: when the resource is
turned off, simply mark the actions it hosts as FAILED.
That's much simpler than the convoluted existing code, which relied on
the Host::on_state_change signal. Each activity pushed a callback to
check whether it was its host which failed. Gosh, so convoluted...
The current change is not completely applied to CpuTI model, which
seems to have another way to mark the actions as failing. So I
override CpuTI::turn_off() to not mark the actions as failing to avoid
a segfault. It's a bit lame, but CpuTI is too different, I feel lazy.