To be clear, my proposed overload switches the existing order of `kt` and `terminator` as well as `Terminator` and `Char`. AIUI, your overload would be:

    byLine(Char = char)()

So if I wanted Windows newlines with multi-byte chars I would still have to write:
```d
    byLine!(dchar, dchar)(KeepTerminator.no, "\r\n"d);
```
vs:
```d
    byLine!dchar("\r\n"d);
```