Collect an iterator of Results<T, E> into a container of T and a vector of E,
then pack all the errors in a single error of the same type. Requires that E can be
constructed from a Vec.
A type which can be conditionally selected with a loose promise of constant time.
Compared to subtle::ConditionallySelectable, this trait does not require
Copy, but the internal elements should be Copy for the promise to loosely hold.