Delay JSString-to-UTF8 conversion
Conversion to UTF8 can be expensive in theory. However, it's done in most of GJS's JSClasses' resolve hooks, since gobject-introspection needs UTF8 strings for looking up introspected APIs. There are a few places where we can avoid the conversion, or delay it until after a few early return conditions.