Based on PR#45262 by Brian De Wolf, some fixes by me.
The purpose of this module is to implement a buffered version of the select
interface that operates on lines, rather than characters. Given a set of
filehandles, it will block until a full line is available on one or more of
them.