Prefer std::make_shared to make shared pointers
Don't shared pointers to self in constructor of Transform, Scene Manager only holds, will not destruct Transforms.