optimized JavaHandlerModule and JavaFrameInitializer

The JavaHandlerModule.getHandlerClass uses getClassLoader().loadClass to find
the implementation for the given frameClass class to be used by the JavaHandler.
That loadClass call is quite slow.

In JavaHandlerModule I moved the call into the loading function of the LoadingCache.
That avoids making the call more than once.

The JavaFrameInitializer class also depends on getHandlerClass.  In this case there
was a lot of working happening to get all initializers a given frame class may
have inheritted and call them all in order.  I've created a LoadingCache so that
the work of getting all the methods together will only happen once.  This was slow
mostly because of the getHandlerClass call, but I decided to pull everything
I could into the cache.
Merge branch 'dsiegel-2.4.1' into 2.4.1