Draft: core: Replace Ptr with std::shared_ptr
This is what I started doing some time ago to replace Ptr with std::shared_ptr. It builds, but most of the examples/tests crash because I still have to use weak pointers to handle aggregation of objects (I stopped working on this because it was not clear it was useful).