Reset fields when no selected on save

Bit messy with private methods but I think we could probably abstract this further but wanted to get proper conditional validations in first and make sure all the forms are aligned.

other work address clearing still to do. Adding now...

btw, it's done in `valid?` so that any validations we add will take into account that these fields are blank. 
Callbacks are an implementation detail so I think we're testing the wrong thing here. we don't see collaborator object calling `run_callbacks` so I don't that's what we should be testing. 

I noticed @dan-palmer did something similar yesterday (https://github.com/ministryofjustice/atet/blob/3d46cec4be80ece6d4a93016025c919877941a34/spec/forms/application_number_form_spec.rb#L12), I didn't raise it in the review because despite what the test was called the tests did assert whether or not the mailer was invoked, rather than anything specific to callbacks. I'll mention it now so all three of us are on the same page on this point. I think the right to do is to describe its behaviour, i.e, describing `save` under different contexts, e.g. when the user indicates when they were employed or not.