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.