[consistency-predicates] Model relation with AbstractDomainObject instead of DomainObject

  * The DomainObject is an interface. The AbstractDomainObject is guaranteed to
    be the class from which all DomainObject implementations extend (whether
    directly or indirectly).  For now, in the DML, the relations modeled with
    "every domain class" should be related to AbstractDomainObject instead of
    DomainObject.