The main changes here are: * fixes for runtime annotation support * proper support for runtime generic type introspection * throw NoClassDefFoundErrors instead of ClassNotFoundExceptions where appropriate