Make jl_ more robust during early startup
When bringing up the runtime on a new architecture, this can
be quite broken early on (including mesed up memory allocation, etc).
In those situations, jl_ (along with regular printf) is an indispensible
tool. However, it was assuming that variables are already initialized
and crashed during very early bootstrap when this wasn't the case.
Add some extra checks to make it a bit more robust.