This patch replaces uses of StringRef::{starts,ends}with with StringRef::{starts,ends}_with for consistency with std::{string,string_view}::{starts,ends}_with in C++20. I'm planning to deprecate and eventually remove StringRef::{starts,ends}with.
Add includes where needed to fix build. Haven't systematically added used headers, so there is still accidental dependency on transitive includes.
To be used in D116490 and D116385, and an upcoming patch to generate C++ constructors. Differential Revision: https://reviews.llvm.org/D116502