Extract SAM constructor resolution logic to a component
Minor, merge two sematically identical functions
Move SAM adapter resolution logic to SamConversionResolver
Minor, make SamAdapterFunctionDescriptor create itself for fake overrides
Minor, get rid of SAMs in some loadJava tests
Minor, change annotation in test data

To fix this case in an upcoming test which adds retention(runtime) to all
annotations (which resulted in duplicate annotation here)
Extract reflection implementation to module runtime.jvm
Minor, fix compilation in module reflection.jvm