fix: make the impl closer to the standard.
feat(shared_ptr): implicitly converted to T*.

It's safe because T* here is internally ref-counted.