OGM-592 Moving "collectionRole" from AssociationKey to AssociationKeyMetadata

* Establishing BiDirectionalAssociationHelper for consolidating logic dealing with bi-di associations
* Always obtaining AssociationKeyMetadata from persisters instead of re-creating it
OGM-592 Moving "associationKind" from AssociationKey to AssociationKeyMetadata
OGM-592 Removing obsolete logic from AssociationPersister
OGM-592 Always exposing main side role via AssociationContext
OGM-592 Addressing review remarks

* using postInstantiate() instead of lazy determination of inverse meta-data
* Also adding test for BiDirectionalAssociationHelper
* Consolidating more logic in BiDirectionalAssociationHelper
OGM-592 Fixing mistake in log message, improving toString() method