Cleanup: Use `issingletontype` consistently (#47618)
Rather than reaching for `isdefined(x, :instance)`. They are currently
equivalent, but I was playing with an extension that would have made them
not be. I don't currently have plans to finish that particular PR, but
this cleanup seems good regardless to specify exactly what is meant
rather than reaching for the implementation.