Fix Issue 10517 - readln(Char)(Char[] buf) accepts non-mutable buffers

Also templatizes a global readln
Fix wchar/dchar issue

Just cause a file is nativelly treated as UTF16 (or something), doesn't mean you can iterate wchars.
Fix Issue 10510 - enforce should take any callable function without regard for calling conventions.
Merge pull request #1382 from AndrejMitrovic/Fix10510

Issue 10510 - enforce should take any callable function
Improve iteration scheme for wchar/dchar
Improve restraints for readln
Merge pull request #1381 from monarchdodra/readln

 Fix Issue 10517 - readln(Char)(Char[] buf) accepts non-mutable buffers
[trivial] fix std.range code style
Break down std.algorithm to multiple sub-modules

Each sub-modules has the name based on categorizing