Check if the class of the target instance is the same as the class declaring the method to invoke and use a fallback if it is not
Allow invoking methods on an instance which is loaded by a different class loader
Added tests to verify the correct behavior of Utils.invoke()