OGM-592 Reducing the number of AssociationKeyMetadata creations, moving constant data there from AssociationKey

@emmanuelbernard, @DavideD: This still needs some refinement but can I get your early feedback on this. The general idea is the following:

1. Move constant attributes from `AssociationKey` to `AssociationKeyMetadata`
1. Calculate each `AssociationKeyMetadata` only once and cache it at `OgmCollectionPersister` or `OgmEntityPersister` (in case of to-one assocs)
1. Have `AssociationKeyMetadata` generally represent its own side of an association (i.e. either the main or the inverse side, if it's a bi-di association)

With an ad-hoc logging dialect I have locally, I did not notice any changes in the number or order of GD invocations for some tests I checked, but the order of row key columns has changed in some places as expected due to 3.)
@emmanuelbernard These two fields are written exactly once in `postInstantiate()` now. I still mark them as `volatile` as they are not final and written by the constructor, or is there any reason for this not being necessary?