Allow for is_splat to be used inline, similar to is_contained, e.g.,
if (is_splat({type1, type2, type3, type4})) ...
which is much more concise and less typo-prone than an equivalent chain of equality comparisons.
My immediate motivation is to clean up some code in the SPIR-V dialect that currently needs to either construct a temporary container or use makeArrayRef before calling is_splat.
hmm, Values is already a valid range, so it's a bit awkward/unfortunate to make a new range from it.
could we make this add the template parameter explicitly?
(the move doesn't do much (since std::initializer_list is immutable, yeah?), but I think it's that or you have to make the parameter a reference type, to work with the universal reference stuff?)