This makes it so that calling llvm::is_contained no longer degrades
performance over member contains, even though both have almost identical
names. This would be the case in most set/map classes that can check for
an element being present in O(1) or O(log n) time vs. linear scan with
std::find. For C++17 maps/sets without .contains, use .find when available,
falling back to a linear scan with std::find.
I also considered detecting member contains and triggering a
static_assert instead, but decided against it because it's just as easy
to do the right thing and call .contains. This would also make some code fail
only when compiled in the C++20 mode when more container types come with
.contains member functions.
This was actually already the case with CommandLine.h calling is_contained
on SmallPtrSet and in a recent BOLT patch.