Fix C++23 build.

Two missing #includes (libc++ is stricter about transitive includes if
compiling for C++23) and one incomplete type used with std::unique_ptr
(whose destructor is constexpr in C++23 which lets clang catch more
abuses).

Change-Id: I5825238e6429874381edb4060d7f7050159bc7cf
3 files changed