Fix Issue 12556 - Add persistent stdio.File.byLine

https://issues.dlang.org/show_bug.cgi?id=12556

Add `stdio.File.byLineCopy`, which uses `ByLineImpl` internally.

* By default, lines are immutable. This can be changed by using a mutable `Char` type.
* `ByLineCopyImpl.front` is cached to avoid unnecessary allocations.
* The API follows `byLine` for consistency.
where does this indentation style comes from? It looks absolutely unreadable and does not fit rest of the Phobos I have been reading so far. I'd expect something like this:
```D
auto byLineCopy(Terminator = char, Char = immutable char)
        (KeepTerminator keepTerminator = KeepTerminator.no,
        Terminator terminator = '\n')
    if (isScalarType!Terminator)
{
}
```
(actually Phobos hard line length limit is 120 as per http://dlang.org/dstyle.html so line breaks here can be reduced/removeD)