> span: (almost) match std::span's constructor behavior
>
> c++20's draft of std::span no longer includes move constructors.
> span: add lifetimebound attribute
>
> See http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0936r0.pdf for
> reference.
>
> This helps to guard against dangling references caused by construction from
> temporaries such as:
>
> `Span<const int> sp(std::vector<int>{1,2,3});`
> Add lifetimebound to attributes for general-purpose usage
>
> Co-authored-by: practicalswift <practicalswift@users.noreply.github.com>
This is a backport of core#19387