core: allow multiple aggregation of an object
This is a take-two of !1639. Meaning, it does the same in a completely different way.
Instead of having a Proxy
Object, it allows an Object to be aggregated on more than one class.
The syntax is slightly different: c1->UnidirectionalAggregateObject (objectToBeAggregatedBroadly);
This MR is still lacking tests and some more documentation. Other than that... reviews please.