Fix Issue 13856 - std.stdio.readln stomps arrays

This avoid interference of readln with standard arrays.
It also avoids an allocation when passing a stack allocated buffer that is large enough to hold the line.

https://issues.dlang.org/show_bug.cgi?id=13856
Why +128?

Also, if I've understood correctly, `reserve` is supposed to ensure that `n` bytes are available to append. What if `pos + n > cap * 2 + 128`? Should this be `ncap = max(cap * 2 + 128, pos + n);`?