asFunctionalInterface function sketch

We are reaching the limits of LambdaMetaFactory, it does too many checks on MethodHandles. It checks
that method handles are direct (no constant, gwt, etc) and public, which is quite annoying.