In `AnyDependencyRef`, support default construction, construction with explicitly specified `Manager` type, assignment, and `Reset()`, like in `AnyDependency`.
In `AnyDependencyRef`, support default construction, construction with
explicitly specified `Manager` type, assignment, and `Reset()`, like in
`AnyDependency`.

It was weird that a derived class implements fewer operations than the base
class, even though constructors and assignment are normally exempt from this
expectation (Riegeli conventions add `Reset()` to that family).

Alternatively it would be possible to remove the subclass relationship between
then, and derive both from a common base class instead, but it is simpler to
just support the missing oprations. `AnyDependencyRef` is an `AnyDependency`
with different rules for deducing the stored `Manager` type from the constructor
argument.

Adding a null state is not controversial because an `AnyDependencyRef` can
already become empty, namely after a move (which is destructive, in contrast to
moving a `Dependency<Ptr, M&&>`, because `AnyDependencyRef` might still own its
dependent object by e.g. `std::unique_ptr` when `Dependency<Ptr,
std::unique_ptr<M>&&>` decays to `Dependency<Ptr, std::unique_ptr<M>>`).
PiperOrigin-RevId: 476304495

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