fix breakage with `jl_get_global` (#58540)
Introduce a new `jl_get_global_value` to do the new world-aware
behavior, while preserving the old behavior for `jl_get_global`. Choose
between `jl_get_global`, `jl_get_global_value`, and
`jl_eval_global_var`, depending on what behavior is required. Also take
this opportunity to fix some data race mistakes introduced by bindings
(relaxed loads of jl_world_counter outside of assert) and lacking type
asserts / unnecessary globals in precompile code.
Fix #58097
Addresses post-review comment
https://github.com/JuliaLang/julia/pull/57213#discussion_r1939814835, so
this is already tested against by existing logic