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". This should work:

char[] buf;
buf = myFile.readln!(char[])();

While buf is not reused after each call, there should be nothing preventing the user for mutating if he so (explicitly) wishes.

Added/improved unittests a wee little bit.
Merge pull request #1384 from monarchdodra/readln

Fixup readln.