llvm::array_lengthof matches the behavior of std::size from C++17, so I renamed it
and moved it to llvm/ADT/STLForwardCompat.h
For consistency, I also added llvm::size over any container with a size method,
which is also available in C++17.
There is, however, already an llvm::size available in llvm/ADT/STLExtras.h,
that's an extension of std::size over ranges with O(1) iterator difference. I've
kept this implementation in STLExtras.h because it's... an extra extension to
the standard.
clang-format: please reformat the code