What is the difference between std::initializer_list and std::span? Both are contiguous sequences of values of some type.