make _uv_stream_on_write work inside the ruby world via rb_thread_call_with_gvl

the macro RBUV_CHECK_UV_RETURN can call rb_raise that require the caller to have gvl