Fixup readln.

Fixes an issue where `readln!S` did not forward the type `S` in `stdin.readln()` => `stdin.readln!S()` (that was my mistake, sorry)

Fixes an issue where `File.readln!S` assumed S was an "immutable string type", and simply casted using `assumeUnique`. That is wrong, because this should work:

```D
auto buf = myFile.readln!(char[])();
```

While `buf` is not a reused buffer, there should be nothing preventing the user for mutating it if he so (explicitly) wishes.

Also improved unittests a wee little bit, as well as added static coverage for the new sigs.