Expansions classes now properly get a number suffix so that expansion classes and scripts no longer share the same name. Also fixes that scripts and expansions cant be in one file
JavaNativeModule: Fixed Method selection for Functional interfaces
Background: We only checked public nondefault, that matched for public statics as well.
Now checks for public nodefault abstract
Also TODO: Functional Type may not be part of functional Method's signature
JavaNative: Moved loading of method return type to a latter time
Background: If the return type was a generic parameter, that early it wouldn't have been populated yet, and why load the return type as first thing in a method anyways?
Fix approximate member choosing when Inherited methods are involved
Background: Approximate member choosing is based only on the types, so an overridden method would match twice, but with different priority. Fixes this by including a priority check before deciding whether or not to throw an error
JavaNativeModule: Don't add methods whose signature was overriden to child class
Background: Javac creates an ACC_BRIDGE method to deal with the signature change (either a covariant parameter or contravariant return type change).
Hence there are two declared methods, one that is the old one, one that is new. For Signatures where only the return type changed this caused both to be registered and an ambiguity later where ZC could not determine which to choose