Avoid requiring the REPL to be loaded to show error hints for undefined variables (#57576)
For some reason, the nice error hints for undefined variables are put in
the REPL module, requiring it to be loaded to get good error messages.
There are many cases where code runs outside of the REPL but where good
error messages are still useful (PkgEval, `Pkg.test`, Pluto, IJulia). As
an example, this is what I got when running `Pkg.test` for a package
with a regression:
```
Testing Running tests...
ERROR: LoadError: UndefVarError: `decompress_symmetric` not defined in `Main`
Stacktrace:
[1] top-level scope
@ ~/JuliaPkgs/NonconvexSemidefinite.jl/test/runtests.jl:6
[2] macro expansion
```
But if I paste the code into the REPL
```
julia> decompress_symmetric
ERROR: UndefVarError: `decompress_symmetric` not defined in `Main`
Hint: It looks like two or more modules export different bindings with this name, resulting in ambiguity. Try explicitly importing it from a particular module, or qualifying the name with the module it should come from.
Hint: a global variable of this name also exists in NonconvexCore.
Hint: a global variable of this name also exists in NonconvexSemidefinite.
Hint: a global variable of this name also exists in NonconvexIpopt.
```
which makes me immediately understand what is going on.
This just moves the code for this error hint to live beside all the
other hints, I see no reason for keeping this special.