Support for using Clojure functions in Java APIs requiring
a SAM (Single Abstrace Method) interface.
Currently uses java.lang.invoke.MethodHandleProxies to
convert an method handle to a SAM type. The method handle
generated for the IFn will translate to something akin to
the below (using method handle notation for signatures):
(-> SAM call
This is not intended to be highly performant, but, as it
has not been benchmarked, may or may not be. It is mainly
intended to provide a more convenient interop with Java
APIs that take SAM arguments.