CJ's Rhino fix worked, but was incorrect; classes should always be loaded using the classloader of the class that referenced the class.

The core bug was that the ClassLoader was creating new array ClassFile objects for every classloader that requested them. Rhino in Apple Java performed a check somewhere to see if a retrieved class was equal to Object[] loaded from the bootstrap classloader. However, our ClassLoader implementation mistakenly created a new Object[] class for the custom classloader, which caused the check to fail.

I've added a unit test and properly fixed it this time. I also added another test that fails now; I accidentally stumbled upon some odd behavior with bad findClass input.