Further JL_STD{IN,OUT,ERR} cleanup

Thanks to Jameson for pointing out that in places like repl.c calling
jl_printf() might not work if libuv is not yet initialised, and that
calling plain old printf() would be better. See:
https://groups.google.com/d/msg/julia-dev/UlfIRvX0_nw/Rca_gQKfuqUJ

Rather than trying to define rules for when it is ok to use jl_printf()
vs printf() this commit modifies jl_write() and jl_putc() to fall back
on fwrite()  and putc() if the uv_streams are not initialised.

julia.h now defines “void julia_init_stdio();” right before julia_init().
This sets JL_STDERR and JL_STDOUT to point to the plain FILE* objects
“stderr” and “stdout” from <stdio.h>

jl_putc() and jl_write() both check for stream being “stdout” or “stderr”
to handle pre-libuv-init output.

repl.c calls julia_init_stdio() as the first thing in main() to
ensure that jl_printf(), jl_puts() etc can be used safely in early
initialisation code.

Misc:

    Revert jl_errorf() change from:
        e8e77a23fb8a0f28ef2017f6d859ec167ebfd0f8.
    call jl_printf() per original rather than fputs()

    Replace miscellaneous calls to fprintf(stderr, ...), fputs(),
    with jl_printf, jl_puts

    Replace direct uses of jl_uv_stderr with JL_STDERR for consistency.

    Call jl_flush_cstdio() when switching JL_STD* from <stdio.h> to uvlib.