Add support for `shared_ptr<const T>` in `py::init()` with `smart_holder` (#5731) * Add overload to enable `.def(py::init(&rtrn_shcp))`. Also uncomment `.def(py::init(&rtrn_uqcp))` and `.def(py::init(&rtrn_udcp))`, which happen to work already (not sure what change in the past made those work). * Introduce `construct_from_shared_ptr()` helper for DRY-ness.