Core: revise association def model (#393).

BREAKING CHANGES

These assoc def fields are dropped from serialized form:
    - assoc_type_uri        # the same as assoc's "type_uri"
    - whole_type_uri        # can be get from assoc's roles
    - part_type_uri         # can be get from assoc's roles
    - whole_role_type_uri   # fixed: "dm4.core.whole"
    - part_role_type_uri    # fixed: "dm4.core.part"

AssociationModel:
    - AssociationModel(long id, String typeUri) constructor is dropped
    - AssociationModel(long id, String typeUri, RoleModel roleModel1, RoleModel roleModel2) constructor
      has additional "uri" argument (String) behind "id"
    - setRoleModel1() and setRoleModel2() methods are dropped

See ticket 393.
Merge branch 'assoc-index' into revise-assoc-def
Core: fix bidirectional assoc index (#389, #393).

For the first time the server can start with the new storage layer.
Use the "assoc-index" branch.
(Try multiple if "bundle not found" is thrown, see 2) below.)

Pending:
    1) Adapt the Webclient to the changed assod def format (#393).
    2) Provide storage implementation as OSGi service.
    3) Update assoc metadata index on delete and retype.

BREAKING CHANGES

The semantics of the Association Definition URI has changed. Now this is straight the URI as derived from the underling Association. So, it does *not* reflect the assoc def's part type URI (= "child type") anymore, but is usually empty (see #393).

When operating on an assoc def you must replace
{{{
    assocDef.getUri()
}}}
by
{{{
    assocDef.getPartTypeUri()
}}}
This is in particular important for genric operations on composite values, e.g.:
{{{
    composite.put(assocDef.getPartTypeUri(), childTopic.getModel());
}}}

See ticket 389.
See ticket 393.