Fix CGLIB memory leak for method injection

This commit continues the work for fixing memory leaks resulting from
CGLIB subclass generation for beans relying on method injection.

- Convert private inner classes in CglibSubclassingInstantiationStrategy
  to private static classes in order to avoid unnecessary coupling to
  classes generated using CGLIB.

- Introduce cache for dynamic subclasses generated using CGLIB, keyed by
  bean definition.

- Stop including the 'overloaded' flag in hash code calculations in
  MethodOverride, since inclusion of this flag breaks caching of
  enhanced subclasses in CglibSubclassingInstantiationStrategy.

- Add test to XmlBeanFactoryTests to ensure that CGLIB enhanced
  subclasses are properly cached across different bean factories.

Issue: SPR-10785