I think this is breaking change, because `ByLine` was not private.

If a user used a `ByLine!(char, char)(myFile)`, then the code breaks. I think this should be kept as:

```D
this(File f, KeepTerminator kt = KeepTerminator.no)
{
    this(f, kt, '\n');
}
this(File f, KeepTerminator kt, Terminator terminator)
{
    ...
}
```