[!!!][BUGFIX] Make sure only complete hierarchies are aggregate root
Reported as "Aggregate root detection for Person vs AbstractParty is
broken" the issue at hand was that one could not rely on certain
semantics bound to aggregate root handling:
The association from Account to Person is cascaded during persist,
because the fact that Person has a PersonRepository is not detected
from the type hint to AbstractParty in the Account class.
The solution this change introduces is as follows: all classes in a
hierarchy must have a repository assigned. This can be done by
having one repository on the tip of the hierarchy, but any entity
can have it's own repository as well.