+ Keep the newline; append a newline if it's the last line of a file
+ that ends in a non-newline character. Do not null terminate.
+ Therefore the stream can contain NUL bytes, and the length
+ (including the newline) is returned in linebuffer->length.
+ Return NULL upon error, or when STREAM is empty.