fix(component): instantiate unique instances of module definitions

Now everytime a new component is found a new instance of the class is instantiated without touching the original module declaration.
feat(core): platform is now the namespace name
feat(core): separate addition of default extensions from it initialisation

This will allow us to attach spies on extensions during testing
feat(extManager): add new methods to retrieve loaded/initialized extensions and change the scope of the arrays that stores the extensions
fix(components): initialise the initializedComponents when starting the app and fix the tests