* Used SFINAE to be able to use step types that do not define is_executable or selection_probability_factor, because they use them trivially.
* Added a do_generic_steps function in the simulation base class that tooks two template bool parameters and uses default parameters for is_executable and selection_probability_factor if they are not defined.
Closes #27