Make `Dependency<Ptr, M&>` constructors stricter: it requires a parameter of type `M&`, no matter whether the specialization comes from `DependencyImpl<P*, M&>` or decays to `DependencyImpl<Ptr, std::decay_t<M>>`. Also, there is no default constructor nor assignment operator.
Make `Dependency<Ptr, M&>` constructors stricter: it requires a parameter of
type `M&`, no matter whether the specialization comes from
`DependencyImpl<P*, M&>` or decays to `DependencyImpl<Ptr, std::decay_t<M>>`.
Also, there is no default constructor nor assignment operator.

Real code asks only for the former, because the decaying dependency is used when
a function deduces the manager type to a reference just in case it could be
the other one, but in fact e.g. a `P*` lvalue was passed.

Same for `Dependency<Ptr, M&&>`.

PiperOrigin-RevId: 475537582

google/riegeli,google/riegeli,google/riegeli,google/riegeli