Provide a size aware buffer to be used in our non blocking `popen`.

Contents are stored up to a specific size. If more is needed, the internal buffer gets switched by a temporary file.