Made changes to how category and subjects for a quiz are validated and saved. The form allows the user to select from existing categories and subjects, in which case the save would be standard. But the form also allows the user to freehand enter a new category and/or a new subject. This case requires special handling. I could have created a form model to deal with the 3 different models involved but since the logic is fairly trivial, I used callbacks, custom validators and some POROs to deal with this. I initially had a single class to deal with validating the two fields, and a single class to deal with creating them when needed, but this change breaks it out so that they are handled separately.