std::unique_ptr actually allows easy dereferencing.
alterations_calculator needs to know about key changes.
Remove the use for our own hand-rolled mutating all_of range template function, and untabify.