Dead code cleanup & jl_write() simplificaiton.

Clean up dead code:
    stream.jl : write!() — My apologies if this is used somewhere, I
could’t find any doc or callers.
    builtins.c : jl_print_symbol(), jl_print_int64()
    ccall.cpp : if(0 …) jl_puts()
    jl_uv.c : jl_puts

Replace 2 remaining calls to jl_puts() with calls to jl_printf() for
consistency.
    builtins.c : jl_error()
    repl.c : true_main()

Move jl_uv_writecb() implementation from stream.jl to jl_uv.c.
This callback is only used by jl_write(),
which is only called from jl_vprintf() in runtime C code.
This helps to de-tangle fs.jl and stream.jl from the runtime's printf().

Use jl_safe_printf() to attempt error message output in jl_uv_writecb().
If this callback is printing an error, there was a problem writing to
JL_STDOUT or JL_STDERR, so its best to try the simpelest means possible
to get the error out.

update doc/devdocs/stdio.rst to remove reference to:
    jl_write(), jl_putc(), jl_puts().

Simplify handling of STDOUT and STDERR early in initialisation:
    Instead of calling fwrite(), just call uv_default_loop() to get the
    jl_io_loop and then call jl_fs_write as usual.
    This means that all jl_printf()s now go through uvlib.
    There is a chance that this won’t work in win32, AppVeyor will tell...