Simplify data correction logic and flow by separating each change into its own class

Note that changes to amount, facility_letter_date, initial_draw_date and initial_draw_amount have been removed and are no longer allowed as they cause potential problems. For instance retroactively changing the loan amount or initial_draw_amount makes past/paid premiums incorrect and though you are instructed to generate a new premium schedule this is not enforced.

So that we minimise disruption (change) for the users we're merging premium schedule-affecting changes to a super feature branch, then we'll merge everything to master when all stories are complete.