Importer refactor

Merge of first round of importer refactorings with @motasem-salem work effectively merging #140 and #149.
This makes me wonder: If we delegate all validations to the model(s) being created, in case of boolean attributes they'll coerce all values to booleans. How should the app handle a record that for some reason has e.g. `77` in the `goes_to_school` column - raise a warning/error or silently turn it into `true`?