An example of using the ability to dynamically create Java interfaces.
This can probably be cleaned up a lot. Among other things, it shows a
nearly constant need to protect the "raw" Java values from ABCL's
interpretation to do anything useful. For example
(let ((c (jclass "java.io.File")))
(jnew-array-from-array "java.lang.Class" #(c c c)))
fails to construct an array as the java.lang.Class members are
promoted to JAVA-OBJECT. Does this mean we need
JNEW-ARRAY-FROM-ARRAY-RAW? Or do we need to try both interpretations?