JNI parameter type checking fix

The core problem I found was that jclass variables were compared using
equals (==) operator assuming it could be used like that.  I think that
after the JNI changes in ICS this is no longer true.  I solved the
issue by using the IsSameObject() function on 2 jclass variables.

 - Use the global FindClass() function when you need a class.  This
global function looks up the class and also creates a global reference.
 It also keeps a registry so there only needs to be one global
reference.
 - Use IsSameObject between class objects to compare classes.