std.stdio.writeln should write strings with embedded nulls correctly

Fixes: https://issues.dlang.org/show_bug.cgi?id=8730

Basically, the problem is that `std.stdio.writeln` (N.B. *not* `File.writeln` which works fine) has a specialization for writing strings, that forwards the D string to `fprintf`. The problem is that the string format `"%.*s"` specifies the *maximum* number of characters written, not the *minimum* (see man 3 printf under the precision modifier for s/S conversions). So when the D string contains embedded nulls, `fprintf` only prints the first section of the string up to the null.

The solution is to use `fwrite` on `stdout` instead, to ensure that the entire string is written to the output.