> Generalize/simplify VectorReader into SpanReader
> Remove unused (and broken) functionality in SpanReader
>
> This removes the ability to set an offset in the SpanReader constructor,
> as the current code is broken. All call sites use pos=0, so it is actually
> unused. If future call sites need it, SpanReader{a, b, c, d} is equivalent
> to SpanReader{a, b, c.subspan(d)}.
>
> It also removes the ability to deserialize from SpanReader directly from
> the constructor. This too is unused, and can be more idiomatically
> simulated using (SpanReader{a, b, c} >> x >> y >> z) instead of
> SpanReader{a, b, c, x, y, z}.
This is a backport of core#23653 and core#23687
Depends on D15902