Add support for Shape sources, split SourceFileBased abstract model into SourceFileBased and SourceTabularBased abstract models to support Source mixins
Update TODO file