Don’t evaluate the first element twice in sequential()

sequential() would potentially evaluate the first element of the iterable
twice: once when testing the emptiness, and once again when actually
collecting the elements. Reuse it instead.

(Tested by the test fixed in 4dd19f1.)
Merge pull request #471 from lucaswerkmeister/sequentialProtectFirst

Don’t evaluate the first element twice in sequential()