Rework ScriptInterface EnumeratePropertyNames to support non-enumerable properties.
This lets it support the JSClass syntax, introduced for components in r23514/D2492, which required a workaround before.
As cleanup, remove the prefix logic which was too specific to be in ScriptInterface, and use an upstream-compatible API that also does more of what we want.
Based on a patch by: elexis
Differential Revision: https://code.wildfiregames.com/D2644