Basic implementation of structure for new Extension model
Merge remote-tracking branch 'origin/sw.nohom.extensions' into sw.nohom.extensions