Implement issue# 10314.

This moves std.traits.unsigned to std.conv and adds std.conv.signed,
since for some reason, we have std.traits.unsigned but do not have
std.traits.signed.
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.
Merge pull request #1341 from jmdavis/signed

Implement issue# 10314 (add std.traits.signed).