Complete refactoring of code to better support new failures, monitoring, and repair modes. Different modes are now object based deriving from abstract class templates to simplify simulation. Also cleans up the code quite a bit
Changed the way fraction failures work. Has two modes: fraction and decay_fraction. Fraction mode will enforce the number of components failed to be the fraction throughout entire simulation. Decay fraction will decay as more components are repaired from that failure mode
Add in concurrent failure modes that allow components to fail from multiple failures mode will still tracking time_to_failure for other modes, which allows failures throughout the simulation alongside an EOL failure. Part 1 for partial failures.
Changes static monitoring to independent monitoring, added option for threshold of components failed to use an independent monitoring method.
Changes: