Add system component implementation
Move specific code to components folder
Let Initialize() function creates the shared_ptr<Container>

This allows components with no default constructor