Importer refactor

Merge of first round of importer refactorings with @motasem-salem work effectively merging #140 and #149.
Will there be any objects of the DataColumn class, or it only exists for subclassing?

What are your thoughts on moving it into a separate file?