Importer refactor

Merge of first round of importer refactorings with @motasem-salem work effectively merging #140 and #149.
This pre-dates my involvement. I discussed this with motasem on slack and he said the importer bailed out of adding records if the spreadsheet was not valid because no importing took place when any errors occurred.