DATACMNS-622 - Prepare feature branch.
DATACMNS-622 - Simplified registration of custom implementations.

We now support the usage of abstract classes as repository implementations. This required some tweaks to the way we pick and set up repository factory bean definitions:

- When looking up custom implementation classes, we now scan nested types, too, to support the declarations of implementation classes in the interface directly.
- The scanner for custom implementation classes now considers abstract classes, too.
- We use the abstract trait of the detected class to mark the BeanDefinition as abstract. This is used in a second step to add a lookup override for Object.finalize() to enforce the CGLib based object instantiation to be used for the bean definition. (TODO - Find better alternatives)
- In case we find an abstract implementation class we mark the factory bean definition as final as otherwise we'd end up with autowiring ambiguities as the custom implementation bean also implements the core repository interface.