Dev/algorithm config logging

Its of course up for debate, but the original idea was for the the set methods to be non-erroring (allowing setting as far as possible). If we couldn't set something (something then having an invalid value), the paired check method would catch that and return false, signifying an invalid configuration. Mostly, I think the non-erroring set motivation was so we could build up config blocks for the intention of outputting them to file.