Accommodate libc++ upgrade and C++20

C++20 removes the `pointer` member from std::allocator, and it also
removes the `allocate` method which takes a hint parameter. Newer
versions of libc++ implement these removals for -std=c++20 and up.

The hint version of the `allocate` method is optional for satisfying
the allocator requirement, even as far back as C++11, so remove the
`hint` parameter, not just the `hint` argument to
std::allocator<T>::allocate.

base::Value needs to be a complete type in value_iterators.cc to
satisfy a `requires` clause.

Bug: 175635923
Test: m libchrome libmojo MODULES-IN-external-libchrome
Change-Id: I28408f1f1be3e02e28187e2f8ad6ac4d20a73bd6
2 files changed